Я пытаюсь сделать регулярное выражение для разрешения только сильных паролей, сильных в этом случае определяется как:RegEx - Password Strength
- должен начинаться с буквой (на верхнем или нижний регистр)
- Должно быть, по крайней мере, 8 и до 12 символов
- должны иметь по крайней мере одну заглавную букву
- Должно быть, по крайней мере, три прописные буквы
- должны иметь по крайней мере два Номера
- Должно быть, по крайней мере, два специальных символа
- Максимальное количество одинаковых последовательных символов три
Теперь, последний дает мне неприятности. Как считать последовательные символы?
Например, FOOfoo!?123
должен работать, но FOOOfoo!?12
не должен (потому что или три эссе).
То, что я получил до сих пор:
^[A-Za-z]{1}(?=.*[A-Z]{1,})(?=.*[a-z]{3,})(?=.*[0-9]{2,})(?=.*[[email protected]*#&$]{2,}).{8,12}$
И еще одно: что-то неладно, потому что мое регулярное выражение выше утверждает, что строки, как FooFoo!?123
являются недействительными. Я думаю это потому, что он только проверяет одну или несколько заглавных букв или три или более прописных букв или номера или скидки, но я не хочу этого, я хочу, чтобы это пароль содержит три прописные буквы всего, он должен быть действительным. Как мне это сделать?
Просьба сообщить, что вы фактически не применяете вышеуказанные ужасные правила для пользователей, и это всего лишь руководство по силе. – PeeHaa
Последние, но три условия выполняются в регулярном выражении, как если бы они были * Должно иметь по крайней мере три/два ... символа ** на растяжке ***. Это то, что вы намеревались сопоставить? –
'Должен иметь как минимум два номера. Если я правильно понимаю ваше выражение, выражение будет соответствовать *, только если * числа являются последовательными. – npinti