密碼強(qiáng)度正則表達(dá)式 – 必須包含大寫字母萄金,小寫字母和數(shù)字建瘫,至少8個字符等
發(fā)表于 2017年09月8日 by 天涯孤雁 被瀏覽 3,953 次 分享到: 2小編推薦:掘金是一個高質(zhì)量的技術(shù)社區(qū),從 ECMAScript 6 到 Vue.js荤牍,性能優(yōu)化到開源類庫案腺,讓你不錯過前端開發(fā)的每一個技術(shù)干貨。各大應(yīng)用市場搜索「掘金」即可下載APP康吵,技術(shù)干貨盡在掌握..
需要一個密碼強(qiáng)度正則表達(dá)式在用戶注冊時校驗(yàn)用戶密碼強(qiáng)度:密碼至少8個字符劈榨,包括1個大寫字母,1個小寫字母和1個數(shù)字或特殊字符晦嵌,例如#同辣,?,!惭载。網(wǎng)上搜索了一些解決方案分享給大家旱函。
方案一
至少8-16個字符,至少1個大寫字母描滔,1個小寫字母和1個數(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]來表示拘泞。
至少8個字符纷纫,至少1個大寫字母,1個小寫字母和1個數(shù)字,不能包含特殊字符(非數(shù)字字母):^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
至少8個字符陪腌,至少1個字母辱魁,1個數(shù)字和1個特殊字符:^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
至少8個字符烟瞧,至少1個大寫字母,1個小寫字母和1個數(shù)字:^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
至少8個字符染簇,至少1個大寫字母燕刻,1個小寫字母,1個數(shù)字和1個特殊字符:^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}
最少8個最多十個字符剖笙,至少1個大寫字母卵洗,1個小寫字母,1個數(shù)字和1個特殊字符:^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}
方案二
還有弥咪,你可以使用這個正則表達(dá)式:^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
這個正則表達(dá)式將強(qiáng)制執(zhí)行這些規(guī)則:
至少1個大寫字母English letter过蹂,(?=.*?[A-Z])
至少1個小寫英文字母,(?=.*?[a-z])
至少1位數(shù)字聚至,(?=.*?[0-9])
至少有1個特殊字符酷勺,(?=.*?[#?!@$%^&*-])
最小8個長度.{8,}
方案三
正則表達(dá)式?jīng)]有AND運(yùn)算符,所以編寫正則表達(dá)式與有效密碼匹配是非常困難的扳躬,當(dāng)有效性被某些東西和其他東西等定義時…
但是脆诉,正則表達(dá)式確實(shí)有1個OR運(yùn)算符,所以只需應(yīng)用DeMorgan的定理贷币,并編寫1個與無效密碼相匹配的正則表達(dá)式:
任何少于8個字符或任何沒有數(shù)字或任何沒有大寫字母或任何沒有小寫字母或任何沒有特殊字符的任何東西击胜。
所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的話役纹,這是1個無效的密碼偶摔。
方案四
由于特殊字符僅限于鍵盤中的特殊字符,因此可用于任何特殊字符:^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$
這個正則表達(dá)式將強(qiáng)制執(zhí)行這些規(guī)則:
– 至少1個大寫英文字母
– 至少1個小寫英文字母
– 至少1位數(shù)字
– 至少1個特殊字符
– 最少8個長度
方案五
根據(jù)我的情況促脉,我遇到了最受歡迎的答案辰斋。例如,我的驗(yàn)證失敗瘸味,其中包含;或[等字符宫仗。我對 white-listing 我的特殊字符不感興趣,所以我用[^\w\s]作為測試 – 簡單地把非字符(包括數(shù)字)和非空格字符放在一起旁仿∨悍颍總而言之,這是對我有用的
至少8字符
至少1數(shù)字字符
至少1小寫字母
至少1大寫字母
至少1特殊字符/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ 簡單演示涵蓋各種情況
方案六
導(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個大寫英文字母
至少1個小寫英文字母
至少1位數(shù)字
至少1個特殊字符
方案七
嘗試這個:
– 最少6個字符
– 至少有1個大寫字符
– 至少1個小寫字符
– 至少1個特殊字符
表達(dá)式:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/可選特殊字符:
至少1個特殊字符
至少1個數(shù)字
特殊字符是可選的
最少6個字符汁胆,最多16個字符
表達(dá)式:/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/如果不需要最小和最大條件,則刪除.{6, 16}
– 6是最小字符數(shù)限制
– 20是最大字符限制
– ?=表示匹配表達(dá)式