密码强度校验

1、密码复杂度要求:3种;(大写字母、小写字母、数字、特殊字符中任选3种)

//方法
isNotComplex(password){
if(password){ var comp = 0; if(this.capLetter.test(password)) comp += 1; if(this.lowLetter.test(password)) comp += 1; if(this.numberReg.test(password)) comp += 1; if(this.specialLetter.test(password)) comp += 1; if(comp < 3) return true; } return false; }
//用法
if (isNotComplex(password)) {
 console.log('密码必须包含大写字母、小写字母、数字、特殊字符中任选3种')
}

知识兔

2、密码中不能包含有连续四位及以上顺序(或逆序)数字;(如:密码中不能包含1234或3210等)

//方法
checkNumSeq(password){ if(password){ var len = password.length; for(var i = 0; i < len; ++i){ if(i + 3 < len){ var c1 = password.charAt(i) - 0; var c2 = password.charAt(i + 1) - 0; var c3 = password.charAt(i + 2) - 0; var c4 = password.charAt(i + 3) - 0; if(isNaN(c1) || isNaN(c2) || isNaN(c3) || isNaN(c4)) continue; var m = c2 - c1; if(m == 1 || m == -1){ if((c3 - c2) == m && (c4 - c3) == m) return true; } } } } return false; }
知识兔
//用法
if (checkNumSeq(password)) {
 console.log('密码中不能包含有连续四位及以上顺序(或逆序)数字;(如:密码中不能包含1234或3210等)')
}

3、密码中不能包含有连续四位及以上顺序(或逆序)字母,字母不区分大小写;(如:密码中不能包含abcd或ABCD或AbcD或DcbA等)

//方法checkSeqChar(password){   if (password) {        var pwd = password.toUpperCase()        var len = pwd.length        for (var i = 0; i < len; ++i) {          if (i + 3 < len) {            var u1 = pwd.charCodeAt(i)            var u2 = pwd.charCodeAt(i + 1)            var u3 = pwd.charCodeAt(i + 2)            var u4 = pwd.charCodeAt(i + 3)            var m = u2 - u1            if (m === 1 || m === -1) {              if (u3 - u2 === m && u4 - u3 === m) return true            }          }        }      }      return false}
//用法
if (checkSeqChar(password)) {
 console.log('密码中不能包含有连续四位及以上顺序(或逆序)字母,字母不区分大小写;(如:密码中不能包含abcd或ABCD或AbcD或DcbA等)')
}

4、密码中不能包含有连续四位及以上重复字符,字母不区分大小写;(如:密码中不能包含8888、9999、aaaa 或AAAA或BbbB或等四位及以上的重复字符)

//方法isRepeat4Times(password){  if (password) {        var pwd = password.toUpperCase()        var len = pwd.length        for (var i = 0; i < len; ++i) {          if (i + 3 < len) {            var u1 = pwd.charAt(i)            var u2 = pwd.charAt(i + 1)            var u3 = pwd.charAt(i + 2)            var u4 = pwd.charAt(i + 3)            if (u1 === u2 && u2 === u3 && u3 === u4) return true          }        }      }      return false  }
//用法
if (isRepeat4Times(password)) {
 console.log('密码中不能包含有连续四位及以上重复字符,字母不区分大小写;(如:密码中不能包含8888、9999、aaaa 或AAAA或BbbB或等四位及以上的重复字符)')
}
计算机