2014-05-14 49 views
1

我使用正則表達式模式匹配密碼。
我的密碼只有三個限制。

1.必須至少有1個UPPER-CHARACTER。
2.給定列表中必須至少有一個特殊字符。
3.必須至少有8個字符的長度。使用此正則表達式:[[email protected]#\$%\^\&*?+=._-]{1,}[a-z0-9]{6,}[A-Z]{1,}$
但它很重要的順序。序列根本不重要。任何想法?用於密碼匹配的正則表達式

+0

哪種語言? – EverythingRightPlace

+0

如果沒有正則表達式:你可以迭代字符串,將每個字符與你的條件匹配,爲每個字符切換一個標誌,並檢查迭代後你的所有標誌是否爲真。 – stuXnet

+0

我剛剛使用在線工具進行測試。 http://regexpal.com/ –

回答

5

以下的正則表達式應該工作:

^(?=.*[[email protected]#\$%\^\&*?+=._-])(?=.*[A-Z]).{8,}$ 

Regular expression visualization

+0

接受沒有任何大寫字母 –

+1

@VishalZanzrukia打開區分大小寫,演示:http://regex101.com/r/hO8jZ9 –

+0

令人印象深刻的可視化,你能請分享你是如何創建它的? – sallushan

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

這應該有效。

+0

嗨,感謝您的回覆,但它不起作用 –

+0

這不檢查特殊字符,不是嗎? – stuXnet

+0

哦,是的。忘了它。你可以添加(?=。* [你想要的字符]) – BelottiGhilardi

0

這裏是我會去:

(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[!#\$%&\?])^\D.{7} 

注意,.*每個先行期滿後是多餘的。

(?!...)是一個負面預測,以確保沒有特殊字符。

^\D要求第一個字符是非數字。之後我只需要7個字符,因爲結尾沒有強制執行。

但爲什麼從密碼中排除特殊字符?通常恰恰相反,是鼓勵。

+0

對我不起作用 –

+0

這與「a1Aaaaa!12tza」(以及其他任何我試過的組合)不符...... – stuXnet