密码复杂度正则校验(字母大小写,数字,特殊字符)全包或至少3种

        //1.全部包含:大写、小写、数字、特殊字符;
       String regex1 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\\W_])^.*$";
 
        //2.无大写:小写、数字、特殊字符;
        String regex2 = "(?=.*[a-z])(?=.*[0-9])(?=.*[\\W_])^.*$";
 
        //3.无小写:大写、数字、特殊字符;
        String regex3 = "(?=.*[A-Z])(?=.*[0-9])(?=.*[\\W_])^.*$";
 
        //4.无数字:大写、小写、特殊字符;
        String regex4 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[\\W_])^.*$";
 
        //5.无特殊字符:大写、小写、数字;
        String regex5 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])^.*$";
 
        String regex = "(" + regex1 + ")|(" + regex2 + ")|(" + regex3 + ")|(" + regex4 + ")|(" + regex5 + ")";

特殊字符 (?=.*[\\W_]) 这个可以按自己要求修改 指定一些特殊字符(?=.*[~!@#$%^&*()_+?])

可以根据不同的要求组装最终的正则

字符串长度限制 {6,20}$

必须包含字母、数字、特殊字符 REGX_PWD_DR="^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[~!@#$%^&*()_+?])[0-9a-zA-Z~!@#$%^&*()_?]{6,20}$"

存在连续稍递增递减3位数字或字母
REGX_PWD2="^(?!.*([!-~])\\1{3,})(?!.*(?:012|210|123|321|234|432|345|543|456|654|567|765|678|876|789|987))(?!.*(?:ABC|CBA|BCD|DCB|CDE|EDC|DEF|FED|EFG|GFE|FGH|HGF|GHI|IHG|HIJ|JIH|IJK|KJI|JKL|LKJ|KLM|MLK|LMN|NML|MNO|ONM|NOP|PON|OPQ|QPO|PQR|RQP|QRS|SRQ|RST|TSR|STU|UTS|TUV|VUT|UVW|WVU|VWX|XWV|WXY|YXW|XYZ|ZYX)).+$";


  /**
     codeType:0数字,1字母
  大写民65—90,英文小写是从97—122
     **/
    function createRegexStr(codeType){
        var result='';
        var items=[];
        var i=(codeType===0)?0:65;
        var max=(codeType===0)?8:89;
        for(;i<max;i++){
            var item=[];
            item.push((codeType===0)?i:String.fromCharCode(i));
               //可根据自己的要求设置连续位数
            for(var j=1;j<=3;j++){
                item.push((codeType===0)?(i+j):(String.fromCharCode(i+j)));
            }
            items.push(item.join(''));
            items.push(item.reverse().join(''));
        }
//英文小写
        var i2 = 97,max2 = 121
        if(codeType === 1 ){
        for(;i2<max2;i++){
            var item=[];
            item.push((codeType===0)?i2:String.fromCharCode(i2));
            for(var j=1;j<=3;j++){
                item.push((codeType===0)?(i2+j):(String.fromCharCode(i2+j)));
            }
            items.push(item.join(''));
            items.push(item.reverse().join(''));
        }
}
        result+=items.join("|");
        result="(?:"+result+")";
        return result;
    }

    function check(str) {
        //可根据自己的要求设置连续位数 {4,}
         var regexStr = "^(?!.*([!-~])\\1{4,})";
         regexStr += "(?!.*" + createRegexStr(0) + ")";
         regexStr += "(?!.*" + createRegexStr(1) + ")";
         regexStr += ".+$";
         console.error(regexStr);
           //这里可能会出错,是因为出现在特殊字符需要转义情况,自行可根据regexStr手动添加转义得到正确的正则
        var regex = new RegExp(regexStr);
        return regex.test(str);
    }

 存在3位重复的数字和字母 
REGX_PWD3="(\\w)\\1{2,}";

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值