Javascript 用于密码验证的正则表达式,至少有4个不同字符组中的3个
正在尝试编写一个密码验证程序,该验证程序可以包含4个字符组中至少3个不同的字符组 条件:Javascript 用于密码验证的正则表达式,至少有4个不同字符组中的3个,javascript,regex,Javascript,Regex,正在尝试编写一个密码验证程序,该验证程序可以包含4个字符组中至少3个不同的字符组 条件: 密码至少包含8个字符 密码应具有以下4个字符组中的3个不同字符组 字符组和每个字符组的密码应至少包含2个字符 大写字母 小写字母 数字的 特殊字符(!@$%&) 我已经用javascript编写了正则表达式: ((?=.*[a-z]{2,})(?=.*[A-Z]{2,})(?=.*[0-9]{2,})|(?=.*[a-z]{2,})(?=.*[A-Z]{2,})(?=.*[!@#$%&\/=?_.,
((?=.*[a-z]{2,})(?=.*[A-Z]{2,})(?=.*[0-9]{2,})|(?=.*[a-z]{2,})(?=.*[A-Z]{2,})(?=.*[!@#$%&\/=?_.,:;\\-]{2,})|(?=.*[a-z]{2,})(?=.*[0-9]{2,})(?=.*[!@#$%&\/=?_.,:;\\-]{2,})|(?=.*[A-Z]{2,})(?=.*[0-9]{2,})(?=.*[!@#$%&\/=?_.,:;\\-]{2,})).{8,}
但这并没有通过某些条件
一些有效密码:
A2W4HH#
$#aaY5U5
YT7gh8q2
任何帮助都将不胜感激
谢谢:)如果您需要至少匹配四个字符集中的三个字符集,那么编写验证密码的Javascript函数将比使用纯正则表达式解决方案更容易。纯正则表达式解决方案很容易,因为它应该是所有四个字符集,而不是四个字符中的三个 检查此功能,它应该按照您需要的方式工作
函数isPasswordValid(通过){
如果(通过长度<8){
返回false;
}
var reg=[/[a-z]/,/[a-z]/,/[0-9]/,/[(!@$%&]]
var计数=0;
对于(变量i=0;i=3){
返回true;
}
}
返回false;
}
变量pwds=['aB1@','aB1@aaaa“,”AAAAA“,”AAAY5U5“,”YT7gh8q2“;
适用于(PWD的){
console.log(s+'-->'+isPasswordValid(s));
}
Regex不适合一次完成所有操作。为什么不使用单独的正则表达式,一个用于检查密码的每个要求?可能也会使您的代码更易于阅读。在这里使用Regex似乎是一些代码聪明的机会,但对于这项工作来说,它绝对是错误的工具。