регулярное выражение для возраста с 2 десятичными знаками - PullRequest
2 голосов
/ 06 апреля 2020

Что такое регулярное выражение для возраста со значением 2 десятичных знака с максимальным значением 99,11

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

1
12.01
16.06
20.11

Недопустимые примеры:

.0
1.12 (decimal value should be <12)
1.13  (decimal value should be <12)
12.111
100.00 (2 digit before decimal point, max 99.11)

Я пробовал ^[0-9]\d{0,1}(\.\d[0-1]\d{0,1})*(,\d+)?$ регулярное выражение, но оно не соответствует всем критериям. кто-нибудь может мне помочь?

Ответы [ 3 ]

2 голосов
/ 06 апреля 2020

Вы можете попробовать этот шаблон:

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

var pattern = /^\d{1,2}(\.(0[0-9]|1[01]))?$/;

console.log(pattern.test('1'));
console.log(pattern.test('12.01'));
console.log(pattern.test('16.06'));
console.log(pattern.test('20.11'));

console.log(pattern.test('.0'));
console.log(pattern.test('1.12'));
console.log(pattern.test('1.13'));
console.log(pattern.test('12.111'));
console.log(pattern.test('100.00'));
1 голос
/ 06 апреля 2020

Вам не хватает двух разных шаблонов плавающей части, которые должны обрабатываться с помощью |.

Оптимальное для символов решение - ^\d{1,2}(\.[0]\d|\.1[01])?$.

1 голос
/ 06 апреля 2020

Попробуйте это.

/^\d\d?(\.(0\d|1[01]))?$/

Описание:

  • ^\d\d? - с начала строки, соответствует 1 или 2 числам
  • После этого / эти числа, необязательно совпадают . плюс 2 числа
  • Два числа должны быть 0 и любым числом, иначе 1 и 0 или 1
  • Привязка к концу строки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...