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]$)/, может есть у кого идеи? |
ar4ipers,
replace(/^(?:0+)/, '') |
<input type="text" onchange="setValidParValue(this)"> <script> function setValidParValue(elem) { elem.value = Number.parseInt(elem.value.replace(/[^0-9]/g, '')).toString(); } </script> |
рони,
Спасибо, пробовал так же, но в таком кейсе я не смогу ввести просто 0 |
elem.value = elem.value.replace(/^0|\D/,'') |
Спасибо, так же пробывал, но просто 0, я не смогу ввести, с данным условием я смогу ввести 10, 1000 и т.д, но не смогу ввести всё что начинается с нуля, хотя просто 0 нужно вводить. Т.е. кейсы 01, 000 невалидные, а кейсы 0, 100, 10 валидные
|
То есть нельзя первый ноль если второй знак не ноль, но можно если все ноли или один ноль?
elem.value = elem.value.replace(/^0(?=[1-9])|\D/,'') |
несовсем
10 - валидный кейс 0 - валидный кейс 01 - невалидный кейс 00 - невалидный кейс 00001 - невалидный кейс первый ноль можно всегда, нельзя после него что-то добавлять, и вот как данное условие регуляркой описать, не знаю :( |
ar4ipers,
А обязательно только регулярка? Этот вариант Number.parseInt(elem.value.replace(/[^0-9]/g, '')).toString(); не подходит? Выдает все валидные кейсы |
replace(/^0(?=\d)|\D/,'')
|
Часовой пояс GMT +3, время: 15:21. |