8 需要一個密碼強度正則表達式在用戶注冊時校驗用戶密碼強度:密碼至少8個字符,包括1個大寫字母,1個小寫字母和1個數字或特殊字符,例如#,?,!。網上搜索了一些解決方案分享給大家。 9 10 11 12 方案一 13 14 至少8-16個字符,至少1個大寫字母,1個小寫字母和1個數字,其他可以是任意字符: 15 16 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/ 17 18 或者: 19 20 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/ 21 22 其中 [\s\S] 中的\s空白符,\S非空白符,所以[\s\S]是任意字符。也可以用 [\d\D]、[\w\W]來表示。 23 24 至少8個字符,至少1個大寫字母,1個小寫字母和1個數字,不能包含特殊字符(非數字字母): 25 26 ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$ 27 28 至少8個字符,至少1個字母,1個數字和1個特殊字符: 29 30 ^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$ 31 32 至少8個字符,至少1個大寫字母,1個小寫字母和1個數字: 33 34 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$ 35 36 至少8個字符,至少1個大寫字母,1個小寫字母,1個數字和1個特殊字符: 37 38 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,} 39 40 最少8個最多十個字符,至少1個大寫字母,1個小寫字母,1個數字和1個特殊字符: 41 42 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10} 43 44 方案二 45 46 還有,你可以使用這個正則表達式: 47 48 ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$ 49 50 這個正則表達式將強制執行這些規則: 51 52 至少1個大寫字母English letter,(?=.*?[A-Z]) 53 至少1個小寫英文字母,(?=.*?[a-z]) 54 至少1位數字,(?=.*?[0-9]) 55 至少有1個特殊字符,(?=.*?[#?!@$%^&*-]) 56 最小8個長度.{8,} 57 方案三 58 59 正則表達式沒有AND運算符,所以編寫正則表達式與有效密碼匹配是非常困難的,當有效性被某些東西和其他東西等定義時… 60 61 但是,正則表達式確實有1個OR運算符,所以只需應用DeMorgan的定理,並編寫1個與無效密碼相匹配的正則表達式: 62 63 任何少於8個字符或任何沒有數字或任何沒有大寫字母或任何沒有小寫字母或任何沒有特殊字符的任何東西。 64 65 所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的話,這是1個無效的密碼。 66 67 方案四 68 69 由於特殊字符僅限於鍵盤中的特殊字符,因此可用於任何特殊字符: 70 71 ^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$ 72 73 這個正則表達式將強制執行這些規則: 74 – 至少1個大寫英文字母 75 – 至少1個小寫英文字母 76 – 至少1位數字 77 – 至少1個特殊字符 78 – 最少8個長度 79 80 方案五 81 82 根據我的情況,我遇到了最受歡迎的答案。例如,我的驗證失敗,其中包含;或[等字符。我對 white-listing 我的特殊字符不感興趣,所以我用[^\w\s]作為測試 – 簡單地把非字符(包括數字)和非空格字符放在一起。總而言之,這是對我有用的 83 84 至少8字符 85 至少1數字字符 86 至少1小寫字母 87 至少1大寫字母 88 至少1特殊字符 89 /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ 簡單演示涵蓋各種情況 90 91 方案六 92 93 導入JavaScript文件jquery.validate.min.js。 94 95 您可以使用此方法: 96 97 JavaScript 代碼: 98 $.validator.addMethod("pwcheck", function (value) { 99 return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value) 100 }); 101 至少1個大寫英文字母 102 至少1個小寫英文字母 103 至少1位數字 104 至少1個特殊字符 105 方案七 106 107 嘗試這個: 108 – 最少6個字符 109 – 至少有1個大寫字符 110 – 至少1個小寫字符 111 – 至少1個特殊字符 112 113 表達式: 114 115 /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/ 116 117 可選特殊字符: 118 119 至少1個特殊字符 120 至少1個數字 121 特殊字符是可選的 122 最少6個字符,最多16個字符 123 表達式: 124 125 /^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/ 126 127 如果不需要最小和最大條件,則刪除.{6, 16} 128 – 6是最小字符數限制 129 – 20是最大字符限制 130 – ?=表示匹配表達式