如何使用数组函数检查密码的内容和长度

时间:2012-11-29 18:35:25

标签: php regex

用户输入密码,例如'tomorrow1234'。我知道我可以将它拆分为一个带str_split的数组,但在此之后,我想查看每个值并搜索它们,例如大小写,数字或空格。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

这是我用来验证密码复杂性的旧备用功能。它要求密码包含大写和小写字母,以及非字母字符。长度检查是微不足道的,并在其他地方处理。

$req_regex = array(
    '/[A-Z]/',      //uppercase
    '/[a-z]/',      //lowercase
    '/[^A-Za-z]/'   //non-alpha
);

foreach($req_regex as $regex) {
    if( !preg_match($regex, $password) ) {
        return NULL;
    }
}

我使用数组和循环,因此在必要时可以轻松添加/删除条件。

答案 1 :(得分:1)

听起来像是在尝试验证密码强度。

查看此网页,您的解决方案编写特定答案会非常复杂,但您可以使用正则表达式检查大小写,符号和数字等内容。这个页面有几个你可以根据需要修改的例子。

http://www.cafewebmaster.com/check-password-strength-safety-php-and-regex

这就是我要用的:

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

检查1个字母,1个数字,1个特殊字符和至少8个字符。