我正在编写jquery验证以创建一个强密码。我为特殊字符写了条件,但不起作用。我正在尝试如下。

"regex": /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$])[0-9a-zA-Z]{8,}$/,
"alertText": "*Password should contain atleast one special character,one number and one upper case letter",

我在使用(?=.*[!@#$])部分代码时遇到了麻烦。如果删除此正则表达式将起作用,但不会验证特殊字符。如果我没有输入(?=.*[!@#$]),它将进行验证。总是出现错误弹出窗口。我不确定(?=.*[!@#$])这部分。

最佳答案

模式结尾处的消费字符类([0-9a-zA-Z])与(?=.*[!@#$]) lookahead所需的特殊字符不匹配。在其中添加这些!@#$字符:

"regex": /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$])[0-9a-zA-Z!@#$]{8,}$/
                                                               ^^^^

09-17 12:36
查看更多