为了账号安全,请及时绑定邮箱和手机立即绑定

PHP - 密码正则表达式要求

PHP - 密码正则表达式要求

PHP
慕森王 2023-06-18 18:04:48
我正在尝试验证新用户帐户的密码是否符合这些条件:长度在 8-30 个字符之间至少包含 1 个小写字母 (az)至少包含 1 个大写字母 (AZ)包含至少 1 个以下特殊字符:_-!#*@&我有这样的功能:function validPassword($str) {     return preg_match("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_-!#*@&])[A-Za-z\d_-!#*@&]{8,30}$", $str); }但是我收到一个错误。它应该为此密码返回“true”,例如:HelloWorld123!但相反,它返回 false。知道可能出什么问题了吗?if (validPassword($password) == true) {   // good password   }
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您忘记转义“-”和定界符...


function validPassword($str) {

  return preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_\-!#*@&])[A-Za-z\d_\-!#*@&]{8,30}$/", $str);

}


查看完整回答
反对 回复 2023-06-18
?
慕后森

TA贡献1802条经验 获得超5个赞

您的正则表达式有错误,这就是为什么首先没有匹配项的原因。

将您的正则表达式更改为此:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_\-!#*@&])[A-Za-z\d_\-!#*@&]{8,30}$

在这里查看您的正则表达式:https ://regex101.com/r/ogPPeb/1


查看完整回答
反对 回复 2023-06-18
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信