美文网首页
正则表达式之密码验证

正则表达式之密码验证

作者: Wonz | 来源:发表于2020-09-14 22:04 被阅读0次

    要求

    密码长度 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个字符等

    相关文章

      网友评论

          本文标题:正则表达式之密码验证

          本文链接:https://www.haomeiwen.com/subject/kbptyktx.html