[轉][ASP.Net]Regular Expression的驗証| von_blog | 密碼正規表示法
[轉][ASP.Net]RegularExpression的驗証其實用RegularExpression做密碼複雜度的驗證已不是什麼創舉,用google[1]輸入關鍵字"regularexpressionpassword"就會有一堆參考。 由於(?=)和(?!)的用法之前有在這篇文章[2]大略提過,所以此篇就當做是為了避免自己忘掉,且做為衍生應用寫的吧。 關於密碼驗證的RegularExpression,我自己在網路上找到的是以下這個:.*(?=.{10,})(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&+=]).*$上述的RegularExpression可達到以下幾個驗證密碼的項目:(?=.{10,}):密碼長度10個以上 (?=.*d):...
[轉][ASP.Net]Regular Expression的驗証
其實用Regular Expression做密碼複雜度的驗證已不是什麼創舉,用google[1]輸入關鍵字"regular expression password"就會有一堆參考。 由於(?=)和(?!)的用法之前有在這篇文章[2]大略提過,所以此篇就當做是為了避免自己忘掉,且做為衍生應用寫的吧。 關於密碼驗證的Regular Expression,我自己在網路上找到的是以下這個:
.*(?=.{10,})(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&+=]).*$
上述的Regular Expression可達到以下幾個驗證密碼的項目:
(?=.{10,}):密碼長度10個以上 (?=.*d):至少要有一個0-9的數字 (?=.*[a-z]):至少要有一個小寫的英文字母(a-z) (?=.*[A-Z]]):至少要有一個大寫的英文字母(A-Z) (?=.*[@#$%&+=]):至少要有清單中的一個特殊符號(@#$%&+=)要看懂以上的Regular Expression,可以到Wikipedia[3]的Syntax章節參考一下。 技巧上很簡單,把每個(?=)項目都當做個驗證的關卡來看,要通過這個密碼驗證,就要每一關都通過。 至於整個Regular Expression最後面的.*是一定要有的,前面的.*可有可無;如果兩個都沒有,或是只有前面有.*,都是不行的。(有興趣的可以多方嘗試) 以下說明一下各個驗證的項目:(記住:不管是(?=)或(?!),.*都記得先放進去)
(?=.{10,}):檢查輸入的字元長度是否有超過10。如果資料庫裡的密碼欄位長度是20,那就改成(?=.{10,20})。 (?=.*d):因為d表示[0-9],所以此部分是檢查輸入的字串裡有沒有0-...