如何用JavaScript正則表達式驗證密碼強度?

如何用JavaScript正則表達式驗證密碼強度?

JavaScript正則表達式:密碼強度驗證

本文深入剖析一段JavaScript正則表達式,用于驗證密碼強度,確保密碼至少包含兩種字符類型(字母、數(shù)字、特殊字符)。

核心代碼:

const reg = /^(?!^d+$)(?!^[a-z]+$)(?!^[A-Z]+$)(?!^[^a-z0-9]+$)(?!^[^A-Z0-9]+$)(?!^.*[u4E00-u9FA5].*$)^S*$/;

讓我們逐一分析表達式組件:

立即學習Java免費學習筆記(深入)”;

  • ^: 匹配字符串開頭。
  • (?!^d+$): 負向先行斷言,確保字符串并非完全由數(shù)字構(gòu)成。d+ 匹配一個或多個數(shù)字,^ 和 $ 分別表示字符串開頭和結(jié)尾。
  • (?!^[a-z]+$): 負向先行斷言,確保字符串并非完全由小寫字母構(gòu)成。[a-z]+ 匹配一個或多個小寫字母。
  • (?!^[A-Z]+$): 負向先行斷言,確保字符串并非完全由大寫字母構(gòu)成。[A-Z]+ 匹配一個或多個大寫字母。
  • (?!^[^a-z0-9]+$): 負向先行斷言,確保字符串并非完全由非字母和非數(shù)字字符構(gòu)成。[^a-z0-9]+ 匹配一個或多個非小寫字母和非數(shù)字的字符。
  • (?!^[^A-Z0-9]+$): 負向先行斷言,確保字符串并非完全由非大寫字母和非數(shù)字字符構(gòu)成。[^A-Z0-9]+ 匹配一個或多個非大寫字母和非數(shù)字的字符。
  • (?!^.*[u4E00-u9FA5].*$): 負向先行斷言,確保字符串不包含中文字符。[u4E00-u9FA5] 匹配中文字符范圍。
  • ^S*$: 確保字符串不包含空格。S 匹配任何非空格字符。

通過組合這些負向先行斷言,該正則表達式有效地排除了只包含單一字符類型(數(shù)字、小寫字母、大寫字母、特殊字符)的情況,從而保證密碼至少包含兩種字符類型。 此外,它也排除了包含空格和中文字符的情況。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊13 分享