密码校验,必须由数字字母符号三种组成位数必须八位以上 ,且不能是123这种连贯输入

function testPassWord(v){
                //暂定你的特殊字符为键盘上可视这些
                /*if(!/[a-z0-9!@#$%^&*()-_+=|\\{}\[\]:;'"<,>.?\/]{8,}/i.test(v)){
                    return false;//这里的意思是由数字、大小字母与特殊字符组成至少8位以上
                    //过于简单,可能你的要求是下面的
                }else */
                if(!/(?=.{8,})(?![a-zA-Z0-9]+$)(?![^a-zA-Z/D]+$)/i.test(v)){
                    return false;//这里的意思是至少8个字符以上,但必须包含数字、字母和特殊字符三种
                }else if(/admin|root|password/i.test(v)){
                    return false;
                }
                解决键盘上三个能连成一条线的(包含连续数字问题)
                这里并没有兼容Shift键,如p;/和p;?和p:/和p:?都是同一条线,我们只计没按Shift键的情况
                var arr = ["1234567890-=",
                    "qwertyuiop[]",
                    "asdfghjkl;'\\",
                    "zxcvbnm,./"];
                var array = [];
                for(var i = 0;i < arr.length;i ++){
                    var t = arr[i];
                    for(var l = 0;l < t.length;l ++){
                        if(i < 2){
                            var _k = t.substring(l,l + 1) + (arr[i + 1]||"").substring(l,l + 1) + (arr[i + 2]||"").substring(l,l + 1);
                            _k.length == 3 && array.push(_k,_k.split("").reverse().join(""));
                        }
                        if(l < t.length - 2){
                            var _t = t.substring(l,l + 3);
                            array.push(_t,_t.split("").reverse().join(""));
                        }
                    }
                }
                for(var p = array.length; p --;){
                    if(v.toLowerCase().indexOf(array[p]) != -1){
                        return false;
                   }
                }
                return true;
            }

你可能感兴趣的:(JS)