正則表達式之密碼驗證


要求

密碼長度 6-16 位,包含至少一個特殊字符,一個數字,一個大寫字母和一個小寫字母。

正則表達式

(?=^.{6,16}$)(?=(?:.*?\d){1})(?=.*[a-z])(?=(?:.*?[A-Z]){1})(?=(?:.*?[`·~!@#$%^&*()_+}{|:;'",<.>/?\=\[\]\-\\]){1})(?!.*\s)[0-9a-zA-Z`·~!@#$%^&*()_+}{|:;'",<.>/?\=\[\]\-\\]*$

解釋

規則 解釋
(?=^.{6,16}$) 密碼長度6-16,自己改變數字可以調節
(?=(?:.?[`·~!@#$%^&()_+}{:;'",<.>/?=\[\]\-\]){1}) 至少一個特殊字符
(?=(?:.*?\d){1}) 至少一個數字
(?=.*[a-z]) a-z的小寫字母
(?=(?:.*?[A-Z]){1}) 至少一個大寫字母

一些坑

  • 在做特殊字符處理這塊,因為涉及到有些字符比如 = [ ] - \ 這四個,需要在前面加 \ 進行轉義,才能正常正則識別出來。

  • 特殊字符匹配,后面這段必須也包含前面的匹配代碼,即兩段 ``·~!@#$%^&*()_+}{|:;'",<.>/?=[]-\` 都相同:

    (?=(?:.*?[`·~!@#$%^&*()_+}{|:;'",<.>/?\=\[\]\-\\]){1})(?!.*\s)[0-9a-zA-Z`·~!@#$%^&*()_+}{|:;'",<.>/?\=\[\]\-\\]*$
    
  • 只支持英文狀態下的特殊字符,因為發現中文的 和英文的 - 是兩個字符。

正則表達式測試網站

參考

正則表達式驗證密碼強度

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM