首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JavaScript 密碼強度驗證:正則表達式單行實現解析

     編輯:Java 相關知識

密碼強度分級規則

四種字符組合:數字、小寫字母、大寫字母、其他字符。

等級條件
0無輸入
1長度 ≤ 4 或 僅含 1 種組合
2長度 > 4 且 含 2 種組合
3長度 > 4 且 含 3 種組合
4長度 > 4 且 含 4 種組合

核心正則邏輯 (單行實現)

function checkPwdStrength(pwd) {
  if (!pwd) return 0;
  // 核心正則:前四個捕獲組分別匹配四類字符,第五組處理短密碼
  const regex = /(?:[0-9])|(?:[a-z])|(?:[A-Z])|(?:[^0-9a-zA-Z])|(.{5,})/g;
  const matches = pwd.match(regex) || [];
  // 匹配到的捕獲組數量即為組合種類數 (短密碼第五組匹配長度≥5)
  return Math.min(4, matches.length);
}

技巧解析

  1. 五個捕獲組:前四組分別對應四類字符,出現即計數;第五組 (.{5,}) 專門匹配長度 ≥ 5 的任意字符。
  2. 全局匹配 g 標誌:使 match() 返回所有匹配到的捕獲組內容組成的數組。
  3. 短路邏輯:長度 ≤ 4 時第五組不匹配,組合數僅由前四組決定 → 強制等級 1。
  4. 空輸入:match 返回 null,直接返回 0。

生產環境建議

  • 此邏輯屬「啟發式」,嚴格場景建議配合 zxcvbn 等熵值估算庫。
  • 前端驗證不可替代後端安全策略 (bcrypt/scrypt/Argon2 哈希、限制嘗試次數、MFA)。
  • 用戶體驗:實時顯示強度條、具體提示「需包含大寫/特殊字符」優於單純等級數字。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved