Как разрешить только 3 цифры и одну точку в регулярном выражении
Я хочу сделать так: 3,40 и не более 3 символов и одна точка:
<md-input-container class="md-block">
<label>Marks/CGPA</label>
<input type="text" name="education.cgpa" ng-model="education.cgpa"
ng-pattern="/^[0-9]{0,4}$/">
<div class="input-validation" ng-show="educationSaveForValidate['education.cgpa'].$error.pattern">
Insert valid CGPA
</div>
</md-input-container>
Как я могу разрешить только 3 цифры и одну точку в регулярном выражении?
3 ответа
Вы можете использовать одно регулярное выражение, как
ng-pattern="/^(?!.{5})\d*\.?\d+$/"
или - разрешить пустую строку:
ng-pattern="/^(?!.{5})\d*\.?\d*$/"
Вы также можете убрать проверку длины из регулярного выражения:
ng-pattern="/^\d*\.\d*$/" ng-maxlength="4"
подробности
^
- начало строки(?!.{5})
- отрицательный прогноз, который не соответствует совпадению, если во входной строке есть 5 символов\d*
- 0+ цифр\.?
- необязательный.
\d*
- ноль или более цифр (если\d+
используется, затем 1 или более цифр)$
конец строки.
Чтобы запретить любые пробелы в начале / конце, добавьте ng-trim="false"
,
Я решил свою проблему таким образом......
ng-pattern="/^\d\.\d{0,2}$/"
https://regex101.com/r/kF0hJ5/17
Проверьте эту ссылку выше, я надеюсь, она вам поможет. Извините за комментирующую ссылку здесь. Делаю так, у меня меньше репо.