实现正则表达式,help help

实现正则表达式
①数字、大写字母、小写字母及特殊符号只包含一种时密码等级显示一级

②数字、大写字母、小写字母及特殊符号包含两种或三种且超过8字符时密码等级显示二级

③数字、大写字母、小写字母及特殊符号包含四种且超过8字符时密码等级显示三级

特殊字符包含 `~!@#$%^&*()-_=+|[{}];:'",<.>/?
万分感谢

你这个需要三个不同的正则啊,不管是1级正则2级正则,还是规则1正则,规则2正则,都需要用程序支持,建议还是密码强度不要用纯正则搞,没啥意义

^([0-9]+|[a-z]+|[A-Z]+|[^0-9a-zA-z]+)$  一级的

^(?=.*?[0-9])(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z0-9])[\u0020-\u007f]{8,16}$  三级的

^((?=.*?[0-9])(?=.*?[a-z])(?=.*?[A-Z])|(?=.*?[0-9])(?=.*?[a-z])(?=.*?[^a-zA-Z0-9])|(?=.*?[0-9])(?=.*?[A-Z])(?=.*?[^a-zA-Z0-9])|(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z0-9]))[\u0020-\u007f]{8,16}$   纯正则判断符合三个条件的二级的


^([\d]|[A-Z]|[a-z]|[~!@#$%^&*()_+|\[\]{};:'",<.>/?-])+$       // 包含一种字符
^([a-zA-Z]+|\d+|[~!@#$%^&*()_+|\[\]{};:'",<.>/?-]+){2,3}\w{5,}$ // 包含两种或三种字符且超过8字符
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#$%^&*()_+|\[\]{};:'",<.>/?-])\w{8,}$ // 包含四种字符且超过8字符

说明:

^ 匹配输入的开始位置
[\d]|[A-Z]|[a-z]|[~!@#$%^&*()_+|[]{};:'",<.>/?-] 匹配数字、大写字母、小写字母或特殊符号中的任意一个

  • 匹配前面的子表达式一次或多次
    | 或
    () 分组
    {2,3} 匹配前面的子表达式 2 到 3 次
    \w 匹配字母、数字或下划线
    {5,} 匹配前面的子表达式 5 次或多次
    (?=.\d) 包含数字
    (?=.
    [a-z]) 包含小写字母
    (?=.[A-Z]) 包含大写字母
    (?=.
    [~!@#$%^&*()_+|[]{};:'",<.>/?-]) 包含特殊字符
    $ 匹配输入的结束位置

^(?=.[0-9])(?=.[a-z])(?=.[A-Z])(?=.[^a-zA-Z0-9]).{8,}$