我正在尝试使用Javascript来验证密码,并给出以下条件:
我正在尝试使用以下模式实现后一条件(2+大写,2 +小写等):
var pattern2=/^(?=.*?[A-Z])(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?=.*?[#?!@$%^&*-]).{9,}$/gi
然而,它不起作用。我该如何解决这个问题?
答案 0 :(得分:1)
尝试:
(?=(.*\d){2})(?=(.*[a-z]){2})(?=(.*[A-Z]){2})(?=.*[#?!@$%^&-]).{9,}
经过测试here。
上面的正则表达式只有在尊重所有4个requeriments时才匹配。如果你想要至少3个,那么就有怪物:
((?=(.*\d){2})(?=(.*[a-z]){2})(?=(.*[A-Z]){2})|(?=(.*\d){2})(?=(.*[a-z]){2})(?=.*[#?!@$%^&-])|(?=(.*\d){2})(?=(.*[A-Z]){2})(?=.*[#?!@$%^&-])|(?=(.*[a-z]){2})(?=(.*[A-Z]){2})(?=.*[#?!@$%^&-])).{9,}
还测试了here
答案 1 :(得分:0)
try this
if(userpassword.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&\/=?_.,:;\\-])|(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%&\/=?_.,:;\\-]).{9,}$/)) {
alert("right");
} else {
alert("false");
}