Я пытаюсь сопоставить буквенно-цифровую строку хотя бы с одной цифрой. Второе условие - минимальная длина должна быть 3.

Например, следующие строки должны совпадать

111
12345
ABCD1
123A
11AA11

И следующее не должно совпадать

ABCD
AB
12
1A

Я достиг того момента, когда смогу правильно выполнить первое условие. То есть имея минимум одну цифру:

([a-zA-z0-9]*[0-9]+[a-zA-z0-9]*)

Но я понятия не имею, чтобы указать минимальную длину. Если я попытаюсь использовать {3}, потребуется минимум 3 цифры.

0
rahules 29 Янв 2013 в 23:18

2 ответа

Лучший ответ

Попробуйте использовать позитивный прогноз, чтобы убедиться, что есть хотя бы одна цифра, и используйте {{X0 }} чтобы указать, что он должен соответствовать как минимум 3 символам:

/^(?=.*\d)[a-z\d]{3,}$/i
3
Joseph Silber 29 Янв 2013 в 19:47

Вы можете использовать lookahead, чтобы убедиться, что ваше выражение содержит цифру, а затем соответствует минимум три -chars :

/^(?=.*?\d)[a-zA-Z0-9]{3,}$/
1
Bergi 29 Янв 2013 в 19:22