Regex для разрешения числа от 1 до 18 с десятичными значениями - PullRequest
2 голосов
/ 16 апреля 2019

Я пытаюсь написать регулярное выражение, которое позволяет только число от 1 до 18 с десятичным значением.Ниже выражения позволяют 18.10 - 18.99. Пожалуйста, предложите, если таковые имеются.Заранее спасибо

((?:[1-9]|1[0-8])(?:\.\d{1,2})?|18(?:\.00?)?)$

1 Ответ

4 голосов
/ 16 апреля 2019

Ваше регулярное выражение в целом нормально, вам просто нужно изменить [0-8] на [0-7], чтобы не допустить никаких значений, начинающихся с 18, кроме 18.0 или 18.00, и вы должны экранировать символы .заставить их совпадать только с ..Наконец, вы должны привязать совпадение как к началу строки, так и к концу:

^((?:[1-9]|1[0-7])(?:\.\d{1,2})?|18(?:\.00?)?)$

Демонстрация на regex101
Демонстрация на 3v4l.org

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