我有一个密码表达式,如下所示。
它必须允许一个小写字母,一个大写字母,一个数字或一个小写字母,一个大写字母,一个特殊字符或一个小写字母,一个大写字母,一个数字,一个特殊字符。我使用|加入了所有这三个条件要么。它应该是最小8和最多20个字符。它应该只允许特定的特殊字符$ @#!%。但是在这里它允许所有特殊字符,虽然我提到了具体的设置。这是主要问题。我花了很多时间来改变模式,但仍然允许所有特殊字符。 -
我不明白为什么它允许^(Marr1234 ^)?
(((?= \ d)(?=。 [AZ])(?= [AZ])(?=。 [$ @# !%]))|((= [AZ])(= 的[AZ])(= [$ @#%]))|?。?。?。!((? = \ d)(?= [AZ])(?=。 [AZ])))。{8,20}
任何想法
答案 0 :(得分:2)
您是否考虑过.{8,20}
符合您的意见?这个术语匹配每个字符(.
==每个字符)8到20次......所以这也匹配^
- 字符
答案 1 :(得分:1)
感谢rdmuller的帮助。我能够解决它。 我需要添加范围[A-Za-z0-9]并避免"。"喜欢。{8,20}。
这是我用过的表达式
^(?= \ d)(?=。 [AZ])(?=。* [AZ])[A-ZA-Z0-9] {8,20} $