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或等四位及以上的重复字符)')
    }
  • 相关阅读:
    康复计划
    Leetcode 08.02 迷路的机器人 缓存加回溯
    Leetcode 38 外观数列
    Leetcode 801 使序列递增的最小交换次数
    Leetcode 1143 最长公共子序列
    Leetcode 11 盛水最多的容器 贪心算法
    Leetcode 1186 删除一次得到子数组最大和
    Leetcode 300 最长上升子序列
    Leetcode95 不同的二叉搜索树II 精致的分治
    Leetcode 1367 二叉树中的列表 DFS
  • 原文地址:https://www.cnblogs.com/adbg/p/11711937.html
Copyright © 2011-2022 走看看