我正在創建一些正則表達式代碼,以便在客戶嘗試創建帳戶時檢查密碼。目前我有兩段代碼在測試時似乎可以工作: - http://www.regexplanet.com/simple/index.html。正則表達式密碼檢查器
的第一位是:
^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$
這可以確保:
- 密碼長度爲8位
- 至少包含一個一個小寫字母,一個大寫字母,一個數字和一個特殊字符
第二部分是:
\S*(.)\1{3,}\S*
這可以確保:
任何4個或更多連續的相同字符匹配。
問題是,我怎樣才能將它們結合起來呢?我試圖無濟於事,但他們似乎一直很好地工作。
謝謝
閱讀:http://xkcd.com/936/ – NullUserException
首先,您應該注意,由於存在正則表達式錯誤,這些(?=)lookahead在Internet Explorer的Javascript中不起作用:http://blog.stevenlevithan .com/archives/regex-lookahead-bug和http://regexadvice.com/blogs/mash/archive/2009/02/21/Looking-again-at-the-Lookahead-bug.aspx –
任何不檢查的原因他們分開?總的來說,我可能更喜歡做幾個簡單的檢查,而不是一個大規模的檢查。這樣當你稍後再回頭看看它,或者另一個開發人員來看它時,它會明白它在做什麼。如果由於使用兩個正則表達式而不是一個正在看到性能問題,我會非常驚訝... – Chris