Регулярное выражение для проверки числа ниже значения - PullRequest
6 голосов
/ 13 апреля 2011

Я все еще новичок в регулярных выражениях, так что это немного выше меня в настоящее время.

Мне нужно проверить ввод числа двумя символами, и он не может быть больше значения 12.

Два простых числа:

/^\d{1,2}$/

Затем убедитесь, что если есть два числа, то первое должно быть 0 или 1, а второе - 0, 1 или 2.Часть, я не знаю, как выразить, регулярно ...

А также, если возможно, я хотел бы, чтобы это было в одном выражении регулярного выражения.

Любая помощь приветствуется.

Ответы [ 5 ]

14 голосов
/ 13 апреля 2011

Regex не подходит для работы с такими диапазонами, но в любом случае это должно работать:

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

Описание:

^       match start of the string
(0?     optional zero
[1-9]       any number between 1 and 9
|1[012])    or match 1 followed by either a 0, 1, 2 i.e. 10, 11, 12.
$           match end of string
1 голос
/ 13 апреля 2011

Для чего-то подобного (тестирование, если целое число меньше заданного значения) , вам не следует использовать регулярное выражение.

Вместо этого просто используйте простое условие, подобное этому (синтаксис зависит от языка, с которым вы работаете) :

if ($variable <= 12) {
  // OK
}
else {
  // Not OK
}
0 голосов
/ 23 октября 2017

0 [0-9] | 1 [0-2]

Description:

 [0-9] : number between 00 and 09
     | : or
1[0-2] : and if starting with 1, next number should be between 0 -1 (testing 10-12)
0 голосов
/ 13 апреля 2011
(0[0-9])|(1[0-2])

это соответствует нулю, за которым следует одна произвольная цифра или одна, за которой следуют 0, 1 или 2

0 голосов
/ 13 апреля 2011

Для «символа x, или y, или z, или ...» существует класс символов , выраженный в квадратных скобках:

[012]

означает «любойсимвол 0, 1 или 2 ".

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