用户输入密码,例如'tomorrow1234'
。我知道我可以用 将它拆分成一个数组str_split
,但在那之后,我想遍历每个值并在它们中搜索诸如大写、数字或空格之类的东西。
我该怎么做呢?
这是我用来验证密码复杂性的旧备用功能。它要求密码包含大小写字母以及非字母字符。长度检查是微不足道的,并在其他地方处理。
$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;
}
}
我使用数组和循环,因此在必要时可以轻松添加/删除条件。
听起来您正在尝试验证密码强度。
看看这个网页,你的解决方案写一个具体的答案会很复杂,但你可以使用正则表达式来检查大小写、符号和数字等内容。此页面有几个示例,您可以根据需要进行修改。
http://www.cafewebmaster.com/check-password-strength-safety-php-and-regex
这就是我会使用的:
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
检查 1 个字母、1 个数字、1 个特殊字符和至少 8 个字符长。