Регулярное выражение с максимальным значением - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть следующее RegEx:

(^\d{1,3}$)|(\d{1,3})\.?(\d{0,0}[0,5])

Это допускает любое увеличение числа .5.

Я хочу добавить диапазон к этому числу 13.5.В идеале .5 должно быть допустимо до.

Итак, все от .5 до 13.5 с шагом .5.

Допустимые примеры:

.5
4
12.5
13.5

Не допускается:

.56
3.45
14
14.5

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

У вашего текущего регулярного выражения есть некоторые большие проблемы, например, [0,5] означает не 0 или 5, а 0, , или 5. Вместо этого попробуйте следующее регулярное выражение:

^(?=.)(?:\d|1[0-3])?(?:\.5)?$

Смотрите живое демо здесь

На основании ваших разрешенных примеров он соответствует 12, но не соответствует 12.0. Если вы также хотите сопоставить 12.0, вы должны заменить \.5 на \.[05]:

^(?=.)(?:\d|1[0-3])?(?:\.[05])?$

Примечание : позитивный взгляд (?=.) гарантирует, что пустое совпадение не произойдет.

1 голос
/ 02 апреля 2019
^([0-9]|1[0-3])?(\.[05])?$

Это работает для приведенных вами примеров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...