JavaScript实现高强度密码校验

  • 长度不低于8位,包括数字、小写字母、大写字母、特殊符号4类中至少2类

    ^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{8,}$
    

    (?![A-Z]+$) 匹配不全是大写字母

    (?![a-z]+$) 匹配不全是小写字母

    (?!\d+$) 匹配不全是数字

    (?![\W_]+$) 匹配不是大小写字母、不是数字、不是下划线的的字符串匹配,即特殊字符加上下划线_

  • 长度不低于8位,包括数字、小写字母、大写字母、特殊符号4类中至少3类

    方案一:一个正则表达式

    ^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![a-z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,}$
    

    (?![a-zA-Z]+$) 匹配不全是字母的字符串(大写字母+小写字母)

    (?![A-Z0-9]+$) 匹配不全是大写字母+数字

    (?![a-z0-9]+$) 匹配不全是小写字母+数字

    (?![A-Z\W_!@# %^&*`~()-+=]+ ) 匹配不全是大写字母+特殊字符

    (?![a-z\W_!@# %^&*`~()-+=]+ ) 匹配不全是小写字母+特殊字符

    (?![0-9\W_!@# %^&*`~()-+=]+ ) 匹配不全是数字+特殊字符

    [a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,} 匹配全是大写字母+小写字母+数字+特殊字符,最少8位
    方案二:多个正则表达式

    var regUpper = /[A-Z]/;
    var regLower = /[a-z]/;
    var regNum = /[0-9]/;
    var regTeShu =RegExp("[`~!@#$%^&*()=_|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?+-]");
    var complex = 0;
    if (regLower.test(this.editPasswordForm.newPass)) {
          ++complex;
    }
    if (regUpper.test(this.editPasswordForm.newPass)) {
          ++complex;
    }
    if (regNum.test(this.editPasswordForm.newPass)) {
         ++complex;
    }
    if(regTeShu.test(this.editPasswordForm.newPass)){
         ++complex;
    }
    if (complex < 3 || this.editPasswordForm.newPass.length < 8) {             
          return false;
    }else{
          return true;
    }
    
  • 含有字母、数字、特殊符号的三种及以上

    ^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$
    

    (?=.*[a-zA-Z]) 匹配含有字母(大写、小写、大小写)

    (?=.*\d) 匹配含有数字

    (?=.[~!@#$%^&()_+`-={}:";’<>?,./]) 匹配函数特殊字符

    .{8,20} 最少8位

发布了58 篇原创文章 · 获赞 85 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/codezha/article/details/90700194