Вы можете попробовать использовать регулярное выражение:
^\d{1,2}(?:\.\d{1,2})?$|^\.\d{1,2}$
regex101 demo
Регулярное выражение состоит из двух частей:
^\d{1,2}(?:\.\d{1,2})?$
Это будет принимать номера с 2-х цифр, был возможным десятичные до двух десятичные цифры.
^
соответствует началу линии,
\d{1,2}
совпадает с любым количеством по меньшей мере, один раз и не более 2-х раз.
(?: ...)
не является захват группы (это делает регулярное выражение немного более эффективным, не имея, чтобы сохранить захваченное группу)
?
вблизи конца показывает 0 или 1 раз,
$
указывают на конец (таким образом, больше нет номеров).
Вторая часть ^\.\d{1,2}$
принимает знаковые числа, в которых первая цифра может отсутствовать, как таковой, .1
будет проходить.
Первая и вторая часть связана с |
(или оператор), который означает, что если совпадение не для первой части, двигатель попытается со второй частью, прежде не называя его нет матча
Что относительно 023.1? Должен ли он считаться действительным? Было бы разумно признать начальные нули. – user2314737
Да, предложение ur обязательно. Я думаю, 023 означает 23! – Kevin