一個正則表達式驗證密碼強度

作者:和奇一號發表于:2013-04-09

  1. private int CheckSecurity(string pwd)  
  2. {  
  3.     return Regex.Replace(pwd, "^(?:([a-z])|([A-Z])|([0-9])|(.)){6,}|(.)+$""$1$2$3$4$5").Length;  
  4. }


大概介紹一下:

密碼字符包括:小寫字母、大寫字母、數字、符號等;

這個正則會得到五個捕獲組,前四個捕獲組會告訴我們這個字符串包含有多少種組合(返回多少個匹配代表多少種組合)

如果這個字符串小于6位的話,則會得到第五個捕獲組,長度爲1(即強度爲1),如果沒有輸入,就連捕獲組5都不會得到(強度爲0)

 

 

雖然是一句話的函數,但卻考了好多個正則的知識點:範圍、包含、長度、捕獲、替換。膜拜一下!

不過作者貌似說還有待改進,我想,應該是特殊字符,例如全角字符不能正確識別的問題吧。正常使用不受影響