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