【发布时间】:2013-11-20 19:35:40
【问题描述】:
请帮助我处理正则表达式。我有使用正则表达式验证密码的方法:
/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,12}$/;
我需要添加密码必须包含 2 个大写字母的条件。
谢谢帮助!
【问题讨论】:
标签: javascript regex
请帮助我处理正则表达式。我有使用正则表达式验证密码的方法:
/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,12}$/;
我需要添加密码必须包含 2 个大写字母的条件。
谢谢帮助!
【问题讨论】:
标签: javascript regex
您可以在您的正则表达式中添加另一个前瞻:
/^(?=.*[0-9])(?=(?:[^A-Z]*[A-Z]){2})(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,12}$/;
【讨论】:
这是检查密码语法的一种非常丑陋的方式。如果您将检查分成多个步骤,您的代码会更容易阅读和调试。
例如:
/* 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 ...
【讨论】: