需要一個(gè)密碼強(qiáng)度正則表達(dá)式在用戶注冊(cè)時(shí)校驗(yàn)用戶密碼強(qiáng)度:密碼至少8個(gè)字符枝嘶,包括1個(gè)大寫字母帘饶,1個(gè)小寫字母和1個(gè)數(shù)字或特殊字符,例如#群扶,?及刻,!镀裤。網(wǎng)上搜索了一些解決方案分享給大家。
方案一
至少8-16個(gè)字符缴饭,至少1個(gè)大寫字母暑劝,1個(gè)小寫字母和1個(gè)數(shù)字,其他可以是任意字符:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/
或者:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/
其中?[\s\S]?中的\s空白符颗搂,\S非空白符担猛,所以[\s\S]是任意字符。也可以用?[\d\D]丢氢、[\w\W]來(lái)表示傅联。
至少8個(gè)字符,至少1個(gè)大寫字母疚察,1個(gè)小寫字母和1個(gè)數(shù)字,不能包含特殊字符(非數(shù)字字母):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
至少8個(gè)字符蒸走,至少1個(gè)字母,1個(gè)數(shù)字和1個(gè)特殊字符:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
至少8個(gè)字符貌嫡,至少1個(gè)大寫字母比驻,1個(gè)小寫字母和1個(gè)數(shù)字:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
至少8個(gè)字符,至少1個(gè)大寫字母岛抄,1個(gè)小寫字母别惦,1個(gè)數(shù)字和1個(gè)特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}
最少8個(gè)最多十個(gè)字符,至少1個(gè)大寫字母弦撩,1個(gè)小寫字母步咪,1個(gè)數(shù)字和1個(gè)特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}
方案二
還有,你可以使用這個(gè)正則表達(dá)式:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
這個(gè)正則表達(dá)式將強(qiáng)制執(zhí)行這些規(guī)則:
至少1個(gè)大寫字母English letter益楼,(?=.*?[A-Z])
至少1個(gè)小寫英文字母猾漫,(?=.*?[a-z])
至少1位數(shù)字,(?=.*?[0-9])
至少有1個(gè)特殊字符感凤,(?=.*?[#?!@$%^&*-])
最小8個(gè)長(zhǎng)度.{8,}
方案三
正則表達(dá)式?jīng)]有AND運(yùn)算符悯周,所以編寫正則表達(dá)式與有效密碼匹配是非常困難的,當(dāng)有效性被某些東西和其他東西等定義時(shí)…
但是陪竿,正則表達(dá)式確實(shí)有1個(gè)OR運(yùn)算符禽翼,所以只需應(yīng)用DeMorgan的定理,并編寫1個(gè)與無(wú)效密碼相匹配的正則表達(dá)式:
任何少于8個(gè)字符或任何沒(méi)有數(shù)字或任何沒(méi)有大寫字母或任何沒(méi)有小寫字母或任何沒(méi)有特殊字符的任何東西族跛。
所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$闰挡,如果有什么匹配的話,這是1個(gè)無(wú)效的密碼礁哄。
方案四
由于特殊字符僅限于鍵盤中的特殊字符长酗,因此可用于任何特殊字符:
^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
這個(gè)正則表達(dá)式將強(qiáng)制執(zhí)行這些規(guī)則:
– 至少1個(gè)大寫英文字母
– 至少1個(gè)小寫英文字母
– 至少1位數(shù)字
– 至少1個(gè)特殊字符
– 最少8個(gè)長(zhǎng)度
方案五
根據(jù)我的情況,我遇到了最受歡迎的答案桐绒。例如夺脾,我的驗(yàn)證失敗之拨,其中包含;或[等字符。我對(duì) white-listing 我的特殊字符不感興趣咧叭,所以我用[^\w\s]作為測(cè)試 – 簡(jiǎn)單地把非字符(包括數(shù)字)和非空格字符放在一起蚀乔。總而言之菲茬,這是對(duì)我有用的
至少8字符
至少1數(shù)字字符
至少1小寫字母
至少1大寫字母
至少1特殊字符
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/?簡(jiǎn)單演示涵蓋各種情況
方案六
導(dǎo)入JavaScript文件jquery.validate.min.js吉挣。
您可以使用此方法:
JavaScript 代碼:
$.validator.addMethod("pwcheck", function (value) {
? ? return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});
至少1個(gè)大寫英文字母
至少1個(gè)小寫英文字母
至少1位數(shù)字
至少1個(gè)特殊字符
方案七
嘗試這個(gè):
– 最少6個(gè)字符
– 至少有1個(gè)大寫字符
– 至少1個(gè)小寫字符
– 至少1個(gè)特殊字符
表達(dá)式:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/
可選特殊字符:
至少1個(gè)特殊字符
至少1個(gè)數(shù)字
特殊字符是可選的
最少6個(gè)字符,最多16個(gè)字符
表達(dá)式:
/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/
如果不需要最小和最大條件生均,則刪除.{6, 16}
– 6是最小字符數(shù)限制
– 20是最大字符限制
– ?=表示匹配表達(dá)式