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

RegEx: Как я могу сопоставить все числа больше 49?

Я несколько новичок в регулярных выражениях и пишу подтверждение для поля количества, в котором для использования регулярных выражений требуется.

Как я могу сопоставить все числа больше или равные 50?

Я пробовал

[5-9][0-9]+

но это соответствует только 50-99. Есть ли простой способ сопоставить все возможные числа, превышающие 49? (используются только целые числа)

4b9b3361

Ответ 1

Тот факт, что первая цифра должна находиться в диапазоне 5-9, применяется только в случае двух цифр. Итак, проверьте это в случае двух цифр и разрешите прямое число:

^([5-9]\d|\d{3,})$

Это регулярное выражение имеет начало/конец якорей, чтобы убедиться, что вы проверяете все цифры, а строка фактически представляет собой число. | означает "или", поэтому либо [5-9]\d, либо любое число с 3 или более цифрами. \d является просто ярлыком для [0-9].

Изменить: Чтобы запретить такие номера, как 001:

^([5-9]\d|[1-9]\d{2,})$

Это приводит к тому, что первая цифра не равна нулю в случае 3 или более цифр.

Ответ 2

Я знаю, что уже есть хороший ответ, но он не позволит вести нулевые. И у меня нет достаточной репутации, чтобы оставить комментарий, поэтому... Здесь мое решение, позволяющее вести нулевые значения:

Сначала я сопоставляю числа от 50 до 99 (с возможными ведущими нулями):

0*[5-9]\d

Затем сопоставьте числа 100 и выше (также с начальными нулями):

0*[1-9]\d{2,}

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

^0*([1-9]\d{2,}|[5-9]\d)$

Что это!

Ответ 3

Попробуйте сопоставить условную группу 50-99 или любую строку из трех или более цифр:

var r = /^(?:[5-9]\d|\d{3,})$/

Ответ 4

Следующие совпадения все больше или равно 11100:

^([1-9][1-9][1-9]\d{2}\d*|[1-9][2-9]\d{3}\d*|[2-9]\d{4}\d*|\d{6}\d*)$

Для большего или равного 50:

^([5-9]\d{1}\d*|\d{3}\d*)$

Смотрите шаблон и измените его на любой номер. Также было бы здорово найти некоторые рекурсивные операторы вперед/назад для больших чисел.

Ответ 5

Попробуйте это регулярное выражение:

[5-9]\d+|\d{3,}

Ответ 6

Я знаю, что это старый, но ни одно из этих выражений не сработало для меня (возможно, потому что я на PHP). Следующее выражение работало нормально для проверки того, что число больше 49:

/([5-9][0-9])|([1-9]\d{3}\d*)/