2013-05-17 82 views
0

我想在ASP.NET成員資格中使用正則表達式。以下是什麼正式表達?長密碼強度通過正則表達?

  • 至少8個字符
  • 包括至少一個大寫字母
  • 一個字母
  • 一個數字
+0

如果你也有興趣做這個客戶端,這可能會讓你感興趣:http://stackoverflow.com/questions/1388609/jquery-password-strength-checker而你實際上可以使用表達式中寫入的不同部分此線程並在服務器端逐漸檢查密碼長度。 – Maresh

回答

1

試試這個..

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

你可以使用類似的東西:

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d=:;<>,[email protected]#\\$%/^&)(\[\]+-]{8,}$ 

測試它here。 您可能還想了解「?=」的東西,它被稱爲「積極的前瞻」here。 簡而言之,當所有三個lookahead(.*\d.*[a-z].*[A-Z])匹配(並且被丟棄)時,主正則表達式[a-zA-Z\d=:;<>,[email protected]#\\$%/^&)(\[\]+-]{8,}也可以匹配。

+0

爲什麼限制有效字符?這不是規範。另外,你的解釋是不正確的。 lookahead不遵循正則表達式匹配。 –

+0

部分同意,但並非全部字符均有效。我們沒有有效的字符列表,所以我放置了最嚴格的限制。我沒有說跟着正則表達式匹配正則表達式。我會嘗試修復誤解) – Snifff

+0

所以你想強制用戶使用不太安全的密碼?爲什麼? –

0

你必須這樣做在一個正則表達式?我會將這些規則中的每一個都定義爲一個正則表達式,併爲它們單獨進行測試。我懷疑你的代碼最終會變得更簡單,而且你會爲自己和任何維護你的應用程序的人們節省幾個頭痛。

+0

我意識到你的話..事情是這是一個軟件系統的文本框字段。 – TruMan1