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位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值