1. 程式人生 > >密碼強度正則表達式 – 必須包含大寫字母,小寫字母和數字,至少8個字符等

密碼強度正則表達式 – 必須包含大寫字母,小寫字母和數字,至少8個字符等

數字 英文 AD 涵蓋 min 的人 編寫正則表達式 人才 定義

密碼強度正則表達式 – 必須包含大寫字母,小寫字母和數字,至少8個字符等

發表於 2017年09月8日 by 天涯孤雁 被瀏覽 3,953 次 分享到:
小編推薦:掘金是一個高質量的技術社區,從 ECMAScript 6 到 Vue.js,性能優化到開源類庫,讓你不錯過前端開發的每一個技術幹貨。各大應用市場搜索「掘金」即可下載APP,技術幹貨盡在掌握..


需要一個密碼強度正則表達式在用戶註冊時校驗用戶密碼強度:密碼至少8個字符,包括1個大寫字母,1個小寫字母和1個數字或特殊字符,例如#,?,!。網上搜索了一些解決方案分享給大家。



方案一

至少8-16個字符,至少1個大寫字母,1個小寫字母和1個數字,其他可以是任意字符:

/^(?=.*[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個數字,不能包含特殊字符(非數字字母):

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$

至少8個字符,至少1個字母,1個數字和1個特殊字符:

^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$

至少8個字符,至少1個大寫字母,1個小寫字母和1個數字:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$

至少8個字符,至少1個大寫字母,1個小寫字母,1個數字和1個特殊字符:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}

最少8個最多十個字符,至少1個大寫字母,1個小寫字母,1個數字和1個特殊字符:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}

方案二

還有,你可以使用這個正則表達式:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

這個正則表達式將強制執行這些規則:

至少1個大寫字母English letter,(?=.*?[A-Z])
至少1個小寫英文字母,(?=.*?[a-z])
至少1位數字,(?=.*?[0-9])
至少有1個特殊字符,(?=.*?[#?!@$%^&*-])
最小8個長度.{8,}
方案三

正則表達式沒有AND運算符,所以編寫正則表達式與有效密碼匹配是非常困難的,當有效性被某些東西和其他東西等定義時…

但是,正則表達式確實有1個OR運算符,所以只需應用DeMorgan的定理,並編寫1個與無效密碼相匹配的正則表達式:

任何少於8個字符或任何沒有數字或任何沒有大寫字母或任何沒有小寫字母或任何沒有特殊字符的任何東西。

所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什麽匹配的話,這是1個無效的密碼。

方案四

由於特殊字符僅限於鍵盤中的特殊字符,因此可用於任何特殊字符:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

這個正則表達式將強制執行這些規則:
– 至少1個大寫英文字母
– 至少1個小寫英文字母
– 至少1位數字
– 至少1個特殊字符
– 最少8個長度

方案五

根據我的情況,我遇到了最受歡迎的答案。例如,我的驗證失敗,其中包含;或[等字符。我對 white-listing 我的特殊字符不感興趣,所以我用[^\w\s]作為測試 – 簡單地把非字符(包括數字)和非空格字符放在一起。總而言之,這是對我有用的

至少8字符
至少1數字字符
至少1小寫字母
至少1大寫字母
至少1特殊字符
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ 簡單演示涵蓋各種情況

方案六

導入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位數字
至少1個特殊字符
方案七

嘗試這個:
– 最少6個字符
– 至少有1個大寫字符
– 至少1個小寫字符
– 至少1個特殊字符

表達式:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/

可選特殊字符:

至少1個特殊字符
至少1個數字
特殊字符是可選的
最少6個字符,最多16個字符
表達式:

/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/

如果不需要最小和最大條件,則刪除.{6, 16}
– 6是最小字符數限制
– 20是最大字符限制
– ?=表示匹配表達式

 正文完。下面還有一個推廣讓最好的人才遇見更好的機會!

互聯網行業的年輕人,他們面對著怎樣的職業瓶頸、困惑與未來選擇?過去,這鮮有人關心。資深的職場人,也多半優先選擇熟人去推薦機會。

100offer致力於改變現狀,幫互聯網行業最好的人才發現更好的機會。使用 100offer.com 或 100offer App ,可以一周內獲得中國、美國等數千家優質企業的工作機會。

http://www.css88.com/archives/8100

密碼強度正則表達式 – 必須包含大寫字母,小寫字母和數字,至少8個字符等