繁体   English   中英

无法实现用于密码验证的正则表达式

[英]Trouble implementing regular expression for password validation

考虑到以下条件,我正在尝试使用Javascript验证密码:

  • 至少9个字符
  • 至少使用以下3/4种字符类型:
    • 2个以上大写字母
    • 2个以上小写字母
    • 2+个数字
    • 2个以上特殊字符

我正在尝试使用以下模式来实现后一个条件(2个以上大写,2个以上小写等):

var pattern2=/^(?=.*?[A-Z])(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?=.*?[#?!@$%^&*-]).{9,}$/gi

但是,它不起作用。 我该如何解决?

尝试:

(?=(.*\d){2})(?=(.*[a-z]){2})(?=(.*[A-Z]){2})(?=.*[#?!@$%^&-]).{9,}

在这里测试。

上面的正则表达式仅在所有4个要求均得到遵守的情况下匹配。 如果您至少要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,}

也在这里测试

try this
if(userpassword.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&\/=?_.,:;\\-])|(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%&\/=?_.,:;\\-]).{9,}$/)) {
    alert("right");
} else {
    alert("false");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM