Мне нужно подтвердить ввод пользователя, чтобы убедиться, что введенный номер находится в диапазоне от 1 до 99 включительно. Это должны быть целые (целые) значения
Допускается до 0, но необязательно
Допустимые значения
Неверные значения
Пока у меня есть следующее регулярное выражение, которое я разработал: ^0?([1-9][0-9])$
^0?([1-9][0-9])$
Это допускает необязательный 0 в начале, но не на 100% правильно, так как 1 не считается действительным
1
Есть ли улучшения / предложения?
с макушки головы (не подтверждено)
^(0?[1-9]|[1-9][0-9])$
А вот и вы:
^(\d?[1-9]|[1-9]0)$
Это означает, что вы разрешаете либо
Почему регулярное выражение является требованием? Он не идеален для вычислений числового диапазона.
Apache commons имеет IntegerValidator со следующим:
isInRange(value, 1, 99)
Кроме того, если вы используете Spring, Struts, Wicket, Hibernate и т. Д., У вас уже есть доступ к средству проверки диапазона. Не изобретайте колесо с помощью регулярных выражений.
^(([0-9][1-9])|([1-9][0-9])|[1-9])$
должно работать
довольно поздно, но это сработает.
^[1-9][0-9]?$
Я думаю, что это должно быть как ...
^(0[1-9]|[1-9][0-9])$
Это самое простое из возможных:
^([1-9][0-9]?)$
Допускается только 1-99 включительно.
Просто выполните:
^([0]?[1-9]{1,2})$
Диапазон будет установлен от 0 до 9, а {1,2} означает минимальные цифры = 1 и максимальные цифры = 2.
0
9
{1,2}
Он примет, например: 0, 00, 01, 11, 45, 99, и т.д ... Он не примет, например: 000, 1.2, 5,4, 3490, и т. Д. *
0, 00, 01, 11, 45, 99,
000, 1.2, 5,4, 3490,
Этот работал для меня:
([1-9][0-9])|(0?[1-9])
Он проверяет на 10-99 или 1-9 => 1-99 с одним разрешенным начальным нулем
^[0-9]{1,2}$
тоже должно работать (тоже будет соответствовать 00, надеюсь, это верное совпадение).