2013-12-19 62 views
0

我有一个以下的正则表达式,但它似乎没有按预期工作。正则表达式有一个数字或特殊字符

我想要一个小写字母,一个大写字母,一个数字或一个特殊字符。

长度应该是最小8个字符。

(^.*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*$) 

谁能帮助请

+0

可能重复[复杂的密码正则表达式(http://stackoverflow.com/questions/3466850/complex-password-regular-expression) – damienc88

回答

2

我看到两个问题。你的数字说明符前面有一个双反斜杠 - 使它成为一个单一的。你也没有“特殊字符”的表达。我添加了一个表达式来包含一些特殊字符 - 您可以根据自己的需要进行调整(小心 - 一些有特殊含义,例如-)。

示范在http://regex101.com/r/kM5xW6

表达式(更新,以反映“一个数字或一个特殊字符”):

(^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[[email protected]#$%^&*_0-9]).*$) 

这至少需要8个字符,小写字母,大写字母,和一个来自列表[email protected]#$%^&*_0-9(这是“09之间的一个特殊字符之一)中的字符。

+1

谢谢,但我想一个数字或特殊字符。上面的一个需要 – Coder

+0

好吧,我误解了。现在更新。 – Floris

+1

谢谢你现在工作正常 – Coder

0

更有效一点模式=的 Demo

相关问题