我需要jquery正则表达式来验证表单验证插件的密码

时间:2013-01-18 01:48:01

标签: jquery regex jquery-validate

我正在尝试使用表单验证插件附带的扩展规则patern使用正则表达式验证密码。我已经尝试过很多来自互联网的表达方式,到目前为止,没有一个符合我的要求,或者由于某种原因,他们只是按照描述不起作我需要的是验证以下内容:

  1. 密码必须有6个字符到20个
  2. 必须包含至少一个大写
  3. 必须包含至少一个数字
  4. 必须包含至少一个小写
  5. 必须有可能重复
  6. 无论是字符的可能还是无关紧要
  7. 不得允许空格
  8. 来自其子集的特殊字符应该是可选的
  9. 因此,用户应该能够输入以下示例:

    1. aaaaaa1A
    2. PASSW0RD
    3. abCdef9
    4. $$$ h1Tzzzz
    5. 我想到的只是看到这里是否有人可以帮助我。我不是正则表达式专家。

3 个答案:

答案 0 :(得分:5)

XKCD

您应该允许用户输入他们想要的密码。

无论如何,你的任务可能更好地完成几个测试,一个接一个。这不仅更容易编程,还可以让您告诉用户您为什么不接受他们的密码。

答案 1 :(得分:0)

不要使用正则表达式。

您有一个检查列表:只需使用常规字符串函数进行检查。

答案 2 :(得分:0)

虽然使用正则表达式应该考虑两次。以下是如何做到这一点:

var pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=[\$!]).{6,26}$/;
var password = '$$$h1Tzzzz';
password.match(pattern);
//output
["$$$h1Tzzzz"]
password = '$$$hTzzzz';
password.match(pattern);
//output
null

您可以使用\ $和!将特殊字符添加到括号中。 “$”被转义,因为它具有特殊含义。