密码正则表达式问题

时间:2016-06-30 09:21:39

标签: javascript jquery regex jquery-validation-engine

我需要一个正则表达式来验证用户通过在线注册表单中的JS输入的密码。密码的标准如下:

  1. 必须超过8个字符
  2. 必须包含至少1个数字,1个小写字母和1个大写字母
  3. 不能包含花括号{}
  4. 必须允许任何其他特殊字符(例如@,#,$,%,_,“等)
  5. 数字,小写字母和大写字母的顺序可以是随机的,因此它可以是例如Ab1394 *“或*”bA1394
  6. 我尝试使用以下正则表达式,但是如果输入任何特殊字符,例如'?'在大括号{之前,它将允许它作为有效输入。我是新手使用正则表达式而不是很熟悉,所以可能会有一些小问题:

    ^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[,#?!=@%&\^\$\*\)\(\_\.\'\"\+\-]).{8,}$
    

    有人可以帮我准备一个正则表达式,还是指出我的任何问题?感谢

1 个答案:

答案 0 :(得分:3)

要轻松禁止字符,请将.{8,}更改为[^{}]{8,}

^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*[,#?!=@%&\^\$\*\)\(\_\.\'\"\+\-])[^{}]{8,}$

或在课程中包含任何授权的字母:

[a-zA-Z\d,#?!=@%&\^\$\*\)\(\_\.\'\"\+\-]{8,}