Как разрешить только 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

Проверьте эту ссылку выше, я надеюсь, она вам поможет. Извините за комментирующую ссылку здесь. Делаю так, у меня меньше репо.

Другие вопросы по тегам