Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2019, 13:40
Интересующийся
Отправить личное сообщение для ar4ipers Посмотреть профиль Найти все сообщения от ar4ipers
 
Регистрация: 26.03.2018
Сообщений: 25

Regexp для валидации значения в Input
Здравствуйте, не могу додумать регулярку, которая разрешала бы ввод 0, но запрещала 01, 000, 02234 и так далее, но при этом можно было бы ввести 10 или 1000 или 12000
<input type="text"
                       class="cell-data"
                       ng-model="cell.par"
                       ng-change="setValidParValue()">

$scope.setValidParValue = function () {
                $scope.cell.par = $scope.cell.par.replace(/[^0-9]/g, '').replace(/(^[0]$)/, '');
            }

чет не могу додумать как правильно переписать /(^[0]$)/, может есть у кого идеи?
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2019, 14:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,118

ar4ipers,
replace(/^(?:0+)/, '')
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2019, 14:21
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<input type="text" onchange="setValidParValue(this)">
<script>
function setValidParValue(elem) {
      elem.value = Number.parseInt(elem.value.replace(/[^0-9]/g, '')).toString();
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2019, 14:51
Интересующийся
Отправить личное сообщение для ar4ipers Посмотреть профиль Найти все сообщения от ar4ipers
 
Регистрация: 26.03.2018
Сообщений: 25

рони,
Спасибо, пробовал так же, но в таком кейсе я не смогу ввести просто 0
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2019, 14:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

elem.value = elem.value.replace(/^0|\D/,'')
Ответить с цитированием
  #6 (permalink)  
Старый 02.04.2019, 15:04
Интересующийся
Отправить личное сообщение для ar4ipers Посмотреть профиль Найти все сообщения от ar4ipers
 
Регистрация: 26.03.2018
Сообщений: 25

Спасибо, так же пробывал, но просто 0, я не смогу ввести, с данным условием я смогу ввести 10, 1000 и т.д, но не смогу ввести всё что начинается с нуля, хотя просто 0 нужно вводить. Т.е. кейсы 01, 000 невалидные, а кейсы 0, 100, 10 валидные
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2019, 15:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

То есть нельзя первый ноль если второй знак не ноль, но можно если все ноли или один ноль?

elem.value = elem.value.replace(/^0(?=[1-9])|\D/,'')

Последний раз редактировалось laimas, 02.04.2019 в 15:10.
Ответить с цитированием
  #8 (permalink)  
Старый 02.04.2019, 15:12
Интересующийся
Отправить личное сообщение для ar4ipers Посмотреть профиль Найти все сообщения от ar4ipers
 
Регистрация: 26.03.2018
Сообщений: 25

несовсем
10 - валидный кейс
0 - валидный кейс
01 - невалидный кейс
00 - невалидный кейс
00001 - невалидный кейс
первый ноль можно всегда, нельзя после него что-то добавлять, и вот как данное условие регуляркой описать, не знаю
Ответить с цитированием
  #9 (permalink)  
Старый 02.04.2019, 15:18
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ar4ipers,
А обязательно только регулярка?
Этот вариант
Number.parseInt(elem.value.replace(/[^0-9]/g, '')).toString();

не подходит?
Выдает все валидные кейсы
Ответить с цитированием
  #10 (permalink)  
Старый 02.04.2019, 15:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

replace(/^0(?=\d)|\D/,'')
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Input для телефона ekad Элементы интерфейса 2 06.08.2018 02:49
jQuery Validation Plugin для валидации динамических input'ов evtyshenkosemen jQuery 15 18.08.2015 14:43
Добавить значения из CheckBox в Input tohenson Общие вопросы Javascript 1 18.05.2014 19:09
Выбрать дефолтные значения для каскадного дропдауна Volchen0ck Events/DOM/Window 2 08.05.2014 12:20
Записать в один input значения нескольких input -=fluffy=- Элементы интерфейса 2 17.04.2014 17:40