У меня есть код ниже. Это работает только тогда, когда у меня есть 2 цифры. Если у меня 1 цифра не работает. Я хочу работать в обоих случаях: с одной или двумя цифрами.var numberRegex = /^[1-9][0-9]$/;
Я пробовал что-то подобное, но, к сожалению, не работает:var numberRegex = /^[1-9]?[1-9][0-9]$/;
Спасибо за поддержку.
Одна или две цифры Regex
Ответы (4)
Попробуйте это:
/^\d{1,2}$/;
Судя по тому, что у вас есть, вы не хотите принимать такие числа, как 01
.
/^\d{1}|[1-9]\d{1}$/;
person
Joel Etherton
schedule
27.05.2012
Второе регулярное выражение не совсем правильно.
|
имеет более низкий приоритет, чем ^
и $
. Вы также можете упростить, просто сделав [1-9]
необязательным. /^[1-9]?\d{1}$/
- person Matt Ball; 27.05.2012
Только что понял, что можно сделать еще лучше -
\d{1}
избыточен и эквивалентен \d
.
- person Matt Ball; 27.05.2012
Я бы выбрал
/^[1-9]?\d$/
Не нужно чередовать, просто сделайте первую цифру необязательной.
- person Mark Reed; 27.05.2012
@MarkReed, ваше решение крутое, но для вашего регулярного выражения действительна одна цифра ноль.
- person iamarsey; 28.10.2015
Да. 0 сам по себе действителен. Это намеренно.
- person Mark Reed; 28.10.2015
Попробуй это.
/^[0-9]|[0-9][0-9]$/
Это должно сделать работу. Использование оператора Or делает это.
person
Vishak Kavalur
schedule
28.07.2016
Это работает:
/^([0-9]{0,1}([1-9][0-9]){0,2})$/
person
Ozz
schedule
01.04.2018
попробуйте это регулярное выражение: /^[1-9]\d{0,1}$/
person
Darshana
schedule
27.05.2012