密码验证器javascript正则表达式

时间:2013-11-20 19:35:40

标签: javascript regex

请帮我正则表达。我有使用正则表达式验证密码的方法:

/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,12}$/;

我需要添加这个条件,密码必须包含2个大写字母。

寻求帮助!

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 ...