今天在写登录密码的时候,突然想让用户输入密码更加严谨点。于是打算在登录的时候做个检查用户密码是否安全。很多人老是用123456太不安全了。
必须包含 数字,字母,符号 3项组合的 正则表达式
^(?:(?=.[0-9].)(?=.[A-Za-z].)(?=.*[,.#%'+*-:;^_
].*))[,\.#%'\+\*\-:;^_
0-9A-Za-z]{8,10}$
不为纯数字或字母的正在表达式 用于密码验证
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$
密码为8~20位数字,英文,符号至少两种组合的字符
^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![,.#%'+*-:;^_
]+$)[,\.#%'\+\*\-:;^_
0-9A-Za-z]{8,20}$
实际项目案例:
protected function checkpassword($value)
{
if (!preg_match("/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![,\.#%'\+\*\-:;^_`]+$)[,\.#%'\+\*\-:;^_`0-9A-Za-z]{6,30}$/i",$value)){
return "密码不能为纯数字或字母";
}
return true;
}