关于正则表达式:Jquery验证方法字母,数字和特殊字符

Jquery Validate Method letters,numbers and special character

我正在使用jquery validate验证我的密码字段。我想要什么:

1)密码必须至少包含一个大写字母

2)密码必须至少包含一个小写字母

3)密码必须至少包含一个数字

4)并允许特殊字符(!@#仅限$%&;*)。

这是我尝试过的,但它正在验证,即使我用一个大写字母和一个数字:

1
2
3
4
$.validator.addMethod("letters_numbers_special", function(value, element) {
    return this.optional(element) || /^(?:[a-zA-Z]|[a-zA-Z])[a-z0-9#$@!]+$/i.test(value);
  //(?=.*[a-zA-Z\d].*)[a-zA-Z\d!@#$%&*]
},"");


在下面的两个模式中,lookaheads确保字符串中至少有一个小写字母、一个大写字母和一个数字。

  • 如果不需要特殊字符,但允许使用特殊字符,则可以使用以下模式。
  • ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9!@#$%&*]+$

    试试看

    比赛:

    1
    2
    Gpa1
    abc01A

    不匹配:

    1
    2
    donotmatchME!
    apple2000@
  • 如果还需要至少一个特殊字符,则可以使用以下模式:
  • ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%&*])[a-zA-Z0-9!@#$%&*]+$

    试试看

    比赛:

    1
    2
    Matchme2018!
    regexIScool1!

    不匹配:

    1
    2
    3
    4
    donotmatchME!
    apple2000@
    Gpa1
    abc01A