关于javascript:Active Directory密码的正则表达式

Regex for Active Directory password

本问题已经有最佳答案,请猛点这里访问。

整个上午都在尝试为我们要强制实施的广告密码限制找出一个regex模式。有什么想法吗?

  • 必须至少有一个小写字符(A-Z)
  • 必须至少有一个大写字符(A-Z)
  • 必须至少有一个数字字符(0-9)
  • 必须至少具有以下一个特殊字符,但必须能够允许所有字符:!@#$%^&;*()-+=[]:;"'<>,。?

  • 8到14个字符长

可以是任何顺序

我尝试了大约50种组合,特别的角色部分让我难以理解。

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


从字符串开始的多个独立的lookaheads应该可以工作(演示)

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

1
2
3
4
5
6
7
^                                              # 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

更新为包含!和@。第一次考试没及格。

更新以转义连字符。