请帮我正则表达。我有使用正则表达式验证密码的方法:
/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,12}$/;
我需要添加这个条件,密码必须包含2个大写字母。
寻求帮助!
答案 0 :(得分:4)
您可以在正则表达式中添加另一个前瞻:
/^(?=.*[0-9])(?=(?:[^A-Z]*[A-Z]){2})(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,12}$/;
答案 1 :(得分:0)
这是检查密码语法的一种非常难看的方式。如果将支票分成多个步骤,您的代码将更容易阅读和调试。
例如:
/* Check for at least 2 capital letters */
if (!(/[A-Z][^A-Z]*[A-Z]/.test(password))) {
alert("Your password must contain at least two capital letters");
return false;
}
/* Check for at least 2 lower case letters */
if (!(/[a-z][^a-z]*[a-z]/.test(password))) {
alert("Your password must contain at least two lower case letters");
return false;
}
/* Check for at least one digit */
if (!(/[0-9]/.test(password))) {
alert("Your password must contain at least one digit");
return false;
}
... etc ...