用于Active Directory密码的正则表达式

时间:2017-02-24 20:28:14

标签: javascript php regex preg-match

我们整个上午都试图找出我们试图强制实施的AD密码限制的正则表达式模式。有什么想法吗?

  • 必须至少有一个小写字符(a-z)
  • 必须至少有一个大写字母(A-Z)
  • 必须至少有一个数字字符(0-9)
  • 必须至少有以下特殊字符之一,但必须能够允许所有字符: ! @#$%^& *() - _ + = {} [] | \:; “'<>,。?/

  • 长度为8到14个字符

可以按任意顺序

我尝试了大约50种组合,而特殊字符部分则让我望而却步。

我在这里或网上找到的那个不幸包括括号特殊字符和其他一些字符。

1 个答案:

答案 0 :(得分:1)

字符串开头的多个单独前瞻应该有效(demo

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

^                                              # anchors to start of string
(?=.*?[a-z])                                   # lookahead for lowercase
(?=.*?[A-Z])                                   # lookahead for uppercase
(?=.*?[0-9])                                   # lookahead for numbers
(?=.*?[#!@$%^&*()\-_+={}[\\]|\:;"'<>,.?\/])    # lookahead for special characters
.{8,14}                                        # the actual capture, also sets boundaries for 8-14
$                                              # anchors to end of string

更新为包含!和@。在第一次测试中错过了它们。

更新以逃脱连字符。