Регулярные выражения - очень хороший инструмент для проверки пароля.Несколько правил могут быть применены с использованием проверочных утверждений (которые работают с использованием логики AND
), примененных с начала строки следующим образом:
$re = '/
# Match password with 5-20 chars with letters and digits
^ # Anchor to start of string.
(?=.*?[A-Za-z]) # Assert there is at least one letter, AND
(?=.*?[0-9]) # Assert there is at least one digit, AND
(?=.{5,20}\z) # Assert the length is from 5 to 20 chars.
/x';
if (preg_match($re, $text)) {
// Good password
}
Вот эквивалент Javascript:
var re = /^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.{5,20}$)/;
if (re.test(text)) {
// Good password
}
Хорошая статья о проверке пароля с помощью регулярных выражений: Проверка надежности пароля с помощью регулярных выражений .(Хотя его окончательные выражения включают ошибочную точку-звезду в начале - см. Мой комментарий в его блоге).
Также обратите внимание, что синтаксис регулярных выражений варьируется от языка к языку (но большинство сходятся по синтаксису Perl),Если вы действительно хотите знать регулярное выражение (в нео: "Я знаю кунг-фу" смысл), то нет лучшего способа, чем сесть и прочитать: Освоение регулярных выражений (3-е издание) Джеффри Фридлом.
Дополнительно: Можно привести хороший аргумент в пользу того, что проверка пароля должна быть разбита на несколько тестов, что позволяет коду даватьконкретные сообщения об ошибках для каждого типа ошибки проверки.Ответ, приведенный здесь, предназначен для демонстрации одного правильного способа проверки нескольких правил с использованием только одного регулярного выражения.
Счастливое регулярное выражение!