为密码验证实现正则表达式时出现问题
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");
}
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 正则表达式匹配模式或匹配其他所有内容 - 匹配优先级问题
- 这个正则表达式的日期/时间有什么问题
- 为密码验证实现正则表达式时出现问题
- JavaScript 正则表达式匹配问题
- 我的电子邮件正则表达式有什么问题
- Javascript中的正则表达式问题转义特殊字符
- JavaScript正则表达式代码匹配字符和数字的问题
- url的正则表达式有问题
- 这个正则表达式有什么问题
- 为此模式编写正则表达式时遇到问题
- AngularJS ng-pattern的正则表达式问题
- 在这种情况下,正则表达式中的“[”是什么( 2 个问题)
- JS正则表达式结果表达式赋值问题
- 正则表达式替换问题
- 匹配 JavaScript 中的字符串时的正则表达式问题
- 奇怪的JavaScript正则表达式替换问题
- JavaScript正则表达式(缺少“/”),我该如何解决这个问题
- 我的验证码有什么问题?(正则表达式很好)
- JavaScript 我非常简单的正则表达式有什么问题