2015-10-19 44 views
-3

我有一个像下面的密码表达式。密码表达式不能按预期工作

它允许任何一个小写字母,一个大写字母,一个数字或一个小写字母,一个大写字母,一个特殊字符,或一个小写字母,一个大写字母,一个数字一个特殊字符。我使用|加入了所有三个条件要么。它应该是最少8和最多20个字符。它应该只允许特定的特殊字符$ @#!%。但是在这里,尽管我提到了特定的设置,但它允许所有特殊字符。这是主要问题。我花了很多时间改变模式,但仍然允许所有特殊字符。 -

我不明白为什么它允许^(Marr1234 ^)?

(((= \ d)(= [AZ])(= [AZ])(= [$ @#%!))|?。?。?。?。( (?= .[az])(?=。 [AZ])(?=。[$ @#!%]))|((? )(?=。 [AZ]))){} 8,20

任何想法

+5

我不明白你真正的问题是什么。 –

+0

我的密码允许^,我没有^在我的regualr表达。 – dummy

+0

你想达到什么目的?任何提示? –

回答

1

感谢。我能够修复它。 我需要添加范围[A-Za-z0-9]并避免“。”。像{8,20}。

这里是我用

^(?=。\ d)的表达式(?=。 [AZ])(?=。* [AZ])[A-ZA-Z0-9] {8,20} $

+0

太棒了!所以,我祝你在StackOverflow上的下一次互动中一切顺利! – rdmueller

2

你有没有想过.{8,20}符合您的输入?这个词的每个字符(. ==每个字符)8到20倍......比赛因此,这也符合rdmuller为帮助^字符数限制

+0

waht可能是我的情况的解决方案 – dummy

+0

我应该如何避免。{8,20}我需要提及密码最小和最大范围。 ((?=。* \\ d)(?=。* [az])(?=。* [AZ])(?=。* [$ @#!%]))是否有任何可能的解决方案? |(?(= * [AZ])(= * [AZ])(= * [$ @#%!])。?。?)|?。?。((= * \\ d)(= * [az])(?=。* [AZ])))。{8,20} – dummy

+0

我对你的正则表达式有点困惑。你能用文字来形容你想要搭配什么吗? – rdmueller

相关问题