Regex, чтобы принять число от 0 до 20, а затем необязательные числа decmiall - PullRequest
1 голос
/ 18 мая 2019

Я пытаюсь получить регулярное выражение, которое может проверять допустимые числа от 0 до 20, и за этими числами может указываться дополнительная точка с запятой, за которой следуют одна или две цифры.и не разрешать специальные символы, которые должны быть приняты:

1 true
2 true
2.5 true
.
.
15,25 true
16.369 false
16++++ false
16,32-+* false
20 true

Я пробовал это, но он принимает 16,25 ++++

 var regex = /^(?:1?\d(?:\.\d{1,2})?|20(?:\.0?0?)?)$/

1 Ответ

1 голос
/ 18 мая 2019

Вы можете использовать:

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

Объяснение

  • ^ Начало строки
  • (?: Группа без захвата
    • (?:\d|1[0-9]) Матч 0-9 или 10 - 19
    • (?:[,.]\d{1,2})? Соответствует необязательной части, чтобы соответствовать десятичной и 1-2 цифрам
    • | или
    • 20(?:[,.]0{1,2})? Совпадение 20 с необязательной частью для совпадения с десятичной дробью и 1-2 нулями
  • ) Закрыть группу без захвата
  • $ Конец строки

Regex demo

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