Одна или две цифры Regex

У меня есть код ниже. Это работает только тогда, когда у меня есть 2 цифры. Если у меня 1 цифра не работает. Я хочу работать в обоих случаях: с одной или двумя цифрами.
var numberRegex = /^[1-9][0-9]$/;
Я пробовал что-то подобное, но, к сожалению, не работает:
var numberRegex = /^[1-9]?[1-9][0-9]$/;
Спасибо за поддержку.


person CBuzatu    schedule 27.05.2012    source источник


Ответы (4)


Попробуйте это:

/^\d{1,2}$/;

Судя по тому, что у вас есть, вы не хотите принимать такие числа, как 01.

/^\d{1}|[1-9]\d{1}$/;
person Joel Etherton    schedule 27.05.2012
comment
Второе регулярное выражение не совсем правильно. | имеет более низкий приоритет, чем ^ и $. Вы также можете упростить, просто сделав [1-9] необязательным. /^[1-9]?\d{1}$/ - person Matt Ball; 27.05.2012
comment
Только что понял, что можно сделать еще лучше - \d{1} избыточен и эквивалентен \d. - person Matt Ball; 27.05.2012
comment
Я бы выбрал /^[1-9]?\d$/ Не нужно чередовать, просто сделайте первую цифру необязательной. - person Mark Reed; 27.05.2012
comment
@MarkReed, ваше решение крутое, но для вашего регулярного выражения действительна одна цифра ноль. - person iamarsey; 28.10.2015
comment
Да. 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