正则 校验密码不能输入3位以上连续数字和字母

1.支持录入数字+字母+特殊字符格式,其中字母区分大小写

2.密码最少位数字+字母的组合

3.密码支持8-20长度

4.密码不支持设置3位以上连续的数字或字母

5.不支持重复的数字或字母。

var LxStr = function(str){
    if(str){
        var arr = str.split('');
        var flag = true;
        for (var i = 1; i < arr.length-1; i++) {
            var firstIndex = arr[i-1].charCodeAt();
            var secondIndex = arr[i].charCodeAt();
            var thirdIndex = arr[i+1].charCodeAt();
            thirdIndex - secondIndex == 1;
            secondIndex - firstIndex==1;
            if((thirdIndex - secondIndex == 1)&&(secondIndex - firstIndex==1)){
                flag =  false;
            }
        }
        return flag;
    }
}

 上边的这个方式用来判断密码不支持输入3位以上连续的数字和字母。

下边是正则校验

password: [{
        required: true,
        message: "密码不能为空",
        trigger: "blur"
    }, {
        validator: function(rule, value, callback, source, options) {
            if (!value) {
                callback();
            }

            var reg = /(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,20}/;   //必须数字和字母
            var number = /^(?![a-z\W]+$)(?![A-Z\W]+$)/   //字母和特殊不可以 
            var shuzi = /^(?![0-9\W]+$)/    //数字和特殊不可以
            var aaa = /(.)*(.)\2{2}(.)*/g;   //3位重复的数字和字母

            if (!reg.test(value) && number.test(value) && shuzi.test(value)){
                // callback();
                if(!LxStr(value)){
                   callback(new Error('不支持输入3位以上连续的数字和字母'))
                   
                }else{
                    if(aaa.test(value)){
                        callback(new Error('不支持输入3位以上重复的数字和字母'))
                    }
                    else(
                        callback()
                    )
                }
            }else{
                callback(new Error("密码最少为8-20个数字或字母"));
            }
        },
        trigger: "blur"
    }],
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值