Подтвердить что ты не робот

Как я могу проверить диапазон 1-99 с помощью регулярного выражения?

Мне нужно проверить некоторые пользовательские данные, чтобы обеспечить введенное число в диапазоне от 1-99 включительно. Они должны быть целыми (целыми) значениями

Допускается 0, но необязательно

Допустимые значения

  • 1
  • 01
  • 10
  • 99
  • 09

Недопустимые значения

  • 0
  • 007
  • 100
  • 10,5
  • 010

До сих пор у меня есть следующее регулярное выражение, которое я разработал: ^0?([1-9][0-9])$

Это разрешает необязательный 0 в начале, но не является 100% правильным, поскольку 1 не считается допустимым

Любые улучшения/предложения?

4b9b3361

Ответ 1

Сверху моей головы (не проверено)

^(0?[1-9]|[1-9][0-9])$

Ответ 2

Здесь вы идете:

^(\d?[1-9]|[1-9]0)$

Значение, которое вы разрешаете либо из

  • от 1 до 9 или от 01 до 09, от 11 до 19, от 21 до 29,..., от 91 до 99
  • 10, 20,..., 90

Ответ 3

^(([0-9][1-9])|([1-9][0-9])|[1-9])$

должен работать

Ответ 4

Почему существует регулярное выражение? Он не идеален для вычисления числового диапазона.

У общего доступа Apache есть IntegerValidator со следующим:

isInRange(value, 1, 99)

Кроме того, если вы используете Spring, Struts, Wicket, Hibernate и т.д., у вас уже есть доступ к валидатору диапазона. Не изобретайте велосипед с регулярными выражениями.

Ответ 5

Я думаю, это должно быть...

^(0[1-9]|[1-9][0-9])$

Ответ 6

Это работало для меня:

([1-9][0-9])|(0?[1-9])

Он проверяет наличие 10-99 или 1-9 = > 1-99 с одним допустимым нулевым значением

Ответ 7

Просто выполните:

^([0]?[1-9]{1,2})$

Диапазон будет установлен от 0 до 9, а {1,2} означает минимальные цифры = 1 и максимальные цифры = 2.

Он примет, например: 0, 00, 01, 11, 45, 99, и т.д.... Он не принимает, например: 000, 1.2, 5,4, 3490, и т.д.

Ответ 8

Это самое простое, я могу подумать:

^([1-9][0-9]?)$

Позволяет использовать только 1-99 включительно.

Ответ 9

^[0-9]{1,2}$ 

тоже должен работать (он тоже будет соответствовать 00, надеюсь, что это будет действительное совпадение).

Ответ 10

String d = "11"

if (d.length() <= 2 && d.length() >=1) {
    try {
        Integer i = Integer.valueOf(d);
        return i <= 99 && i >= 0
    }
    catch (NumberFormatException e) {
        return false;
    }
}