js 密码 大写字母,小写字母,数字,特殊字符,包含2种以上

发布时间 2023-07-04 15:31:13作者: 天天的蓝色
const validatepassword = (rule, value, callback) => {
        if (value == "" || value == null) {
          return callback(new Error('请输入8位以上字符,包含大写字母、小写字母、数字、特殊字符的2种以上情况'));
        }
        if (value.length<8) {
          return callback(new Error('请输入8位以上字符,包含大写字母、小写字母、数字、特殊字符的2种以上情况'));
        }
        const reg1 = /[a-z]/;
        const reg2 = /[A-Z]/;
        const reg3 = /[0-9]/;
        const reg4 = /![^(0-9a-zA-Z)]/;
        var n=0;if(reg1.test(value)){
          n++;
        }
        if(reg2.test(value)){
          n++;
        }
        if(reg3.test(value)){
          n++;
        }
        if(reg4.test(value)){
          n++;
        }if(n>=2){
          return callback();
        }else {
          return callback(new Error('请输入8位以上字符,包含大写字母、小写字母、数字、特殊字符的2种以上情况'))
        }
      };
      return {
        password: [
          {
            required: true,
            message: '请输入原密码',
            trigger: 'blur',
          },
        ],
        newpassword: [
          {
            validator: validatepassword,
            trigger: 'blur',
          },
        ],
      };