Я пытаюсь проверить, соответствует ли пароль новой учетной записи этим критериям:
- Длина от 8 до 30 символов
- Содержит как минимум 1 строчную букву (az)
- Содержит как минимум 1 заглавную букву (AZ)
- Содержит как минимум 1 из следующих специальных символов: _-! # * @ &
У меня есть функция вот так:
function validPassword($str) {
return preg_match("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_-!#*@&])[A-Za-z\d_-!#*@&]{8,30}$", $str);
}
Но я получаю сообщение об ошибке. Он должен вернуть «истину» для этого пароля, например: HelloWorld123!
Но вместо этого он возвращает ложь. Есть идеи, что может быть не так?
if (validPassword($password) == true) {
// good password
}