2011-01-20 65 views
0

我需要一個正則表達式來檢查密碼是否與某些單詞不相同(例如password和12345)。我嘗試了幾種組合,但是在否定時遇到了麻煩。弱密碼的正則表達式

它適用於DataAnnotations驗證屬性(如果相關)。

+0

我不確定它是否是一個確切的重複,但你可能想看看這個問題,至少非常相似:http://stackoverflow.com/questions/3131025/strong-password-regex – 2011-01-20 13:52:19

+0

The 「弱」密碼列表將會很長並且永遠不會完成。更好地定義強密碼的要求並允許P @ $$ w0rd – 2011-01-20 13:55:38

回答

2

否定的正則表達式效果最好負向前看符號像

"^(?!password)(?!12345)" 

不過,我覺得不好創建密碼時,並創建捉住他們都將是非常困難的一個表達式的用戶可以說是相當聰明的。

1

你真的想用正則表達式來實現嗎?你提出的「弱」這個詞越多,正則表達式就越容易混淆。爲什麼不只是創建一個未接受的單詞列表,並使用循環/ LINQ來檢查密碼是否包含其中的任何一個?它仍然足夠快速和易於閱讀。

有一件事,你要求的正則表達式,或者我上面的解決方案都沒有處理,就是檢測n個連續的數字/字符。你只是在尋找12345?或者你在尋找能夠檢測字符串如1234567,1234或56789的東西嗎?這將需要一些額外的工作。