vue 复杂密码校验

作者: flyinskybiu | 来源:发表于2023-12-24 16:58 被阅读0次

针对复杂密码


checkPassword(rule, value, callback) {

      this.level = [];

      if (!value) {

        return callback("密码不能为空");

      }

      if (value.length < 8) {

        return callback("密码不少于8位");

      }

      if (value.length > 20) {

        return callback("密码不大于20位");

      }

      // 校验是数字

      const regex1 = /^\d+$/;

      // 校验字母

      const regex2 = /^[A-Za-z]+$/;

      // 校验符号

      const regex3 = /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]+$/;

      const isLowerCase = /^.*[a-z]+.*/;

      const isUpperCase = /^.*[A-Z]+.*/;

      const regEx = /^.*[^a-zA-Z0-9]+.*/;

      var num = 0;

      if (regex1.test(value)) {

        num = num + 1;

      }

      if (isLowerCase.test(value)) {

        num = num + 1;

      }

      if (isUpperCase.test(value)) {

        num = num + 1;

      }

      if (regEx.test(value)) {

        num = num + 1;

      }

      var numberSequence = false;

      for (var i = 0; i < value.length - 3; i++) {

        if (!regex1.test(value.substring(i, i + 1)) || !regex1.test(value.substring(i + 1, i + 2) + "") || !regex1.test(value.substring(i + 2, i + 3) + "") || !regex1.test(value.substring(i + 3, i + 4) + "")) {

          continue;

        }

        var no1 = Number(value.substring(i, i + 1));

        var no2 = Number(value.substring(i + 1, i + 2));

        var no3 = Number(value.substring(i + 2, i + 3));

        var no4 = Number(value.substring(i + 3, i + 4));

        if (no1 + 1 == no2 && no2 + 1 == no3 && no3 + 1 == no4) {

          numberSequence = true;

        }

        if (no2 + 1 == no1 && no3 + 1 == no2 && no4 + 1 == no3) {

          numberSequence = true;

        }

      }

      if (numberSequence) {

        // $.messager.alert("错误","密码中不能包含有连续四位及以上顺序(或逆序)数字(如:密码中不能包含1234或3210等)。");

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

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

      }

      else if (num <= 2) {

        //$.messager.alert("错误","密码复杂度不足,\n(1)大写字母\n(2)小写字母\n(3)数字\n(4)特殊符号\n密码至少需包含上述情形中的三种.");

        // flag = '密码复杂度不足,\n(1)大写字母\n(2)小写字母\n(3)数字\n(4)特殊符号\n密码至少需包含上述情形中的三种';

        return callback('密码复杂度不足,\n(1)大写字母\n(2)小写字母\n(3)数字\n(4)特殊符号\n密码至少需包含上述情形中的三种');

      }

      else if (regex1.test(value)) {

        this.level.push("low");

        return callback("设置8至20位包含大小写字母、数字、特殊符号的密码");

      } else if (regex2.test(value)) {

        this.level.push("low");

        return callback("设置8至20位包含大小写字母、数字、特殊符号的密码");

      } else if (regex3.test(value)) {

        this.level.push("low");

        return callback("设置8至20位包含大小写字母、数字、特殊符号的密码");

      } else if (/^[A-Za-z\d]+$/.test(value)) {

        this.level.push("low");

        this.level.push("middle");

        return callback("设置8至20位包含大小写字母、数字、特殊符号的密码");

      } else if (

        /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、\d]+$/.test(value)

      ) {

        this.level.push("low");

        this.level.push("middle");

        return callback("设置8至20位包含大小写字母、数字、特殊符号的密码");

      } else if (

        /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、A-Za-z]+$/.test(

          value

        )

      ) {

        this.level.push("low");

        this.level.push("middle");

        return callback("设置8至20位包含大小写字母、数字、特殊符号的密码");

      } else if (

        /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、A-Za-z\d]+$/.test(

          value

        )

      ) {

        this.level.push("low");

        this.level.push("middle");

        this.level.push("high");

      }

      return callback();

    },

使用方法
rules: {

         password: [

              { required: true, validator: this.checkPassword, trigger: "blur" },

            ] ,

      },

相关文章

  • 密码强度校验-前端js

    使用js对用户输入的密码进行强度校验 密码复杂度提示:当用户输入密码后,页面显示提示用户输入密码的复杂度(低、中、...

  • 密码复杂度校验

    1、密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符。 2、密码中必须包含字母、数字、特称字符...

  • vue中关于密码复杂度的校验

    以下代码是根据自己的项目里面关于密码复杂度的一个校验,也比较符合目前比较主流的校验规则,并且进行了相应的优化; i...

  • 前端数据处理--密码复杂度验证方法

    前端有时候需要对用户输入的密码进行校验处理,除可做加密处理外,有时应业务需求还要做密码复杂度的校验。(最好是...

  • wrs-gesturelockview

    前言 手势密码控件,支持密码设置、密码修改、密码校验 功能 支持密码设置、密码修改、密码校验 密码设置或修改回调,...

  • JS实现校验密码强度

    /* *@description 校验密码强度的方法 *@param {String} val 待校验强度的密码 ...

  • iview: 表单校验

    表单校验 1、 手机号码 校验 2、 8位数包含字母和数字密码、再次输入密码 校验 3、 多个下拉选择框 必选校验...

  • 设计模式之责任链模式

    抽象处理者 校验的具体规则类 校验用户昵称 校验邮箱 校验状态 校验密码 校验规则客户端 输出结果

  • 密码校验

  • 2021-05-28PythonMOOC东北大学

    PythonMOOC东北大学 第九周单元作业 1密码校验(10分) 题目内容:校验密码是否合法:编写程序提示用户输...

网友评论

    本文标题:vue 复杂密码校验

    本文链接:https://www.haomeiwen.com/subject/qjjhndtx.html