2016-06-30 123 views
1

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

  1. 必须长于8个字符
  2. 必须包括至少1号,1小写字母和1个大写字母
  3. 不能包括大括号{ }
  4. 必须允许任何其他特殊字符(如@,#,$,%,_等)
  5. 数字的顺序,小写字母和大写字母可以是随机的,所以它可以是示例Ab1394 *“或*”bA1394

我试图使用下面的正则表达式,但是如果你输入任何特殊字符,如'?'大括号之前{,这将允许它作为一个有效输入我是新来使用正则表达式,而不是真正熟悉所以可能有一些轻微的它:

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

有人可以帮我这个正则表达式或者点的任何问题,在我谢谢

+0

为什么不允许大括号? – SWa

+0

我对旧系统有限制,我无法在密码中允许这些字符。 – user1809790

回答

3

要轻松禁止字符,改变.{8,}[^{}]{8,}

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

或包含在类内的任何授权的字符:

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