zoukankan      html  css  js  c++  java
  • 密码强度校验

    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或等四位及以上的重复字符)')
    }
  • 相关阅读:
    同步 异步 阻塞 非阻塞深入理解
    TCP的三次握手四次挥手
    dom事件
    Vue 无痕 刷新页面
    事件冒泡 捕获 事件流
    gulp
    懒加载
    Object.prototype.toString.call() 判断某个对象属于哪种内置类型 type instanceof Object.prototype.toString.call 区别
    css sass less
    node module.exports exports
  • 原文地址:https://www.cnblogs.com/adbg/p/11711937.html
Copyright © 2011-2022 走看看