最常用的密码(正则)校验总结,你知道几种?

5,318 阅读1分钟
一. 密码必须包含数字,字母和特殊符号。
  • 写法:
/^([a-zA-Z]+[0-9]+[,._!@#$%^&*]+)|([a-zA-Z]+[,._!@#$%^&*]+[0-9]+)|([0-9]+[,._!@#$%^&*]+[a-zA-Z]+)|([0-9]+[a-zA-Z]+[,._!@#$%^&*]+)|([,._!@#$%^&*]+[a-zA-Z]+[0-9]+)|([,._!@#$%^&*]+[0-9]+[a-zA-Z]+)$/

  • 案例:

image.png

二. 密码必须包含大小写字母,特殊字符和数字,且长度不低于8位。
  • 写法:
/^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\._])[0-9a-zA-Z!@#$%^&*,\\._]{8,12}$/
  • 案例:

image.png image.png

三. 密码中不得包含系统默认密码admin,password等及其变种。
  • 写法:
const validatePass = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请设置密码"));
      } else {
        if (
          value.includes("admin") ||
          value.includes("root") ||
          value.includes("password") ||
          value.includes("r00t") ||
          value.includes("weblogic")
        ) {
          callback(
            new Error("密码中不得包含系统默认密码admin,password等及其变种")
          );
        } else {
          callback();
        }
      }
    };
  • 案例:

image.png

四. 密码不能连续字符(如123、abc)连续3位或3位以上。
  • 写法:
setThr(str) {
      //不能连续字符(如123、abc)连续3位或3位以上
      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;
        }
      }
      if (!flag) {
        return flag;
      }
      return flag;
    }
  • 案例:

image.png image.png image.png

五. 密码不能相同字符(如111、aaa)连续3位或3位以上。
  • 写法:
const validatePass4 = (rule, value, callback) => {
      var re = /(\w)*(\w)\2{2}(\w)*/g;
      if (value === "") {
        callback(new Error("请设置密码"));
      } else {
        if (re.test(value)) {
          callback(new Error("密码不能相同字符(如111、aaa)连续3位或3位以上"));
        } else {
          callback();
        }
      }
    };
  • 案例:

image.png image.png