我需要驗證密碼履行這些規則至少三個結合:
Upper case, lower case, number, special char
密碼也需要至少8個字符長。正則表達式的特定密碼限制
編輯
我知道這些密碼限制是contraproductive,這是一個要求,不是我越來越強密碼天真的想法。
有效密碼的例子:
Password3 // Upper case, lower case, number
Password! // Upper case, lower case, special
password3! // Lower case, number, special
PASSWORD3! // Upper case, number, special
Password3! // Upper case, lower case, number, special
無效密碼的示例:
password // Only lower case
password3 // Only lower case and number
password! // Only lower case and special
Password // Only Upper case and lower case
Pw3! // Too short
這裏是一個正則表達式我寫道:
(?=.*[A-z\d]+)(?=.*[[email protected]!?]+)(?=.*[a-z\[email protected]!?]+)(?=.*[A-Z\[email protected]!?]+)[A-z\[email protected]!?]{8,}
Hopefuly,我知道爲什麼這個正則表達式匹配無效的密碼,如果是的話,我怎麼能說,表達式必須繼續ain從組中的一切,而不僅僅是一場比賽?
爲什麼不直接通過密碼掃描並檢查每個需求?如果你到最後,一個或多個失蹤,那麼你知道你沒有一個有效的字符串。 – NathanOliver
我會建議不要打擾這樣的政策。它們已不再適用於現代密碼破解技術,而這些技術已經涵蓋了所有你可以想到的簡單技巧。他們只是爲你增加更多的工作,並以更多的方式獲取用戶的方式。請使用專業製作的[密碼強度](https://en.wikipedia.org/wiki/Password_strength)檢查程序,或者不要打擾。考慮詢問[Security.SE](https://security.stackexchange.com/)。 – Schwern
至少3 *這些規則的組合*需要一個巨大的正則表達式與變化。更好地將它們分成幾個較小的。 –