我没有从脚本中获得预期的效果。我希望密码包含 AZ、az、0-9 和特殊字符。
- AZ
- 阿兹
- 0-9 >= 2
- 特殊字符 >= 2
- 字符串长度 >= 8
所以我想强制用户使用至少 2 个数字和至少 2 个特殊字符。好的,我的脚本有效,但迫使我背靠背使用数字或字符。我不想要那个。例如密码 testABC55$$ 是有效的——但我不希望这样。
相反,我希望 test$ABC5#8 有效。所以基本上数字/特殊字符可以相同或不同 -> 但必须在字符串中拆分。
PHP代码:
$uppercase = preg_match('#[A-Z]#', $password);
$lowercase = preg_match('#[a-z]#', $password);
$number = preg_match('#[0-9]#', $password);
$special = preg_match('#[\W]{2,}#', $password);
$length = strlen($password) >= 8;
if(!$uppercase || !$lowercase || !$number || !$special || !$length) {
$errorpw = 'Bad Password';