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

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',
          },
        ],
      };

 

posted @ 2023-07-04 15:24  天天的蓝色  阅读(542)  评论(0编辑  收藏  举报