参见英文答案 > Reference – Password Validation 1个
我在网上找到了一个脚本,它在JavaScript中有一个密码正则表达式.我仍然想使用它,但为了更安全,我想使用PHP来验证我的密码,但我对正则表达式没用.
要求:
>必须至少8个字符
>必须至少包含1个数字
>必须至少包含一个大写字符
>必须至少包含一个小写字符
如何构造正则表达式字符串以满足这些要求?
解决方法:
我发现在一个大的正则表达式中做这件事是一个代码维护的噩梦.拆分它对于查看代码的其他人来说要容易得多,它还允许您提供更具体的错误消息.
$uppercase = preg_match('@[A-Z]@', $password);
$lowercase = preg_match('@[a-z]@', $password);
$number = preg_match('@[0-9]@', $password);
if(!$uppercase || !$lowercase || !$number || strlen($password) < 8) {
// tell the user something went wrong
}