private int CheckSecurity(string pwd)
{
return Regex.Replace(pwd, "^(?:([a-z])|([A-Z])|([0-9])|(.)){6,}|(.)+$", "$1$2$3$4$5").Length;
}
大概介紹一下:
密碼字符包括:小寫字母、大寫字母、數(shù)字、符號等;
這個正則會得到五個捕獲組,前四個捕獲組會告訴我們這個字符串包含有多少種組合(返回多少個匹配代表多少種組合)
如果這個字符串小于6位的話,則會得到第五個捕獲組,長度為1(即強(qiáng)度為1),如果沒有輸入,就連捕獲組5都不會得到(強(qiáng)度為0)
雖然是一句話的函數(shù),但卻考了好多個正則的知識點:范圍、包含、長度、捕獲、替換。膜拜一下!
不過作者貌似說還有待改進(jìn),我想,應(yīng)該是特殊字符,例如全角字符不能正確識別的問題吧。正常使用不受影響