# Validate数据校验

支持的验证规则(多个rule用,隔开即可)

方法 说明 参数说明
notEmpty 不能为空
safe 禁止'"/<>
noSymbol 只允许使用中文 数字 字母
mobile 手机号码(1开头的11位数字)
int 整数 支持正数和负数
natural 自然数 >=0的正整数
chinese或cn 仅允许输入汉字
en 仅允许输入英文字母
account 仅允许输入数字和字母和下划线
custom 自定义正则表达式 需同时传入reg属性(正则表达式)
function 自定义函数验证 需同时传入fun属性(验证方法),验证通过需返回true,不通过需返回false
min[1] 至少需要输入1位数字
max[10] 最多可需要输入10位数字
len[1-10] 长度限定1-10
same[target] 输入值必须与target的输入值相同 target也必须定义,否则不能正常输出提示,例:{ passWord: { label: '密码', rule: 'notEmpty', }, passWord2: { label: '确认密码', rule: 'notEmpty,same[passWord]' } }

# 方法:check(data)

该方法返回的是一个Promise对象。 如果在实例化Validate对象以后,解除了对验证目标的对象引用,则需要在check方法中传入新的验证目标。

		this.validate.check(formData).then( data =>{
		 // 验证通过执行代码
		}).catch(errMsg=>{
		
		});

# onError:自定义错误消息

默认为调用layer.error方法。如果要自定义该方法,可以在实例中重写该方法。

const v=new Validate(data, {});
v.onError=function(msg) {
  
}

# DEMO

export default {
  data() {
    return {
      formData: {
          idCard: '123456789012345678',
          userName: 'admin',
          passWord: '123',
          passWord2: '123',
          code: '1234'
      },
      validate: {}
    }
  },
  created() {
    this.validate = new Validate(this.formData, {
      userName: {
        label: '用户名',
        rule: 'notEmpty'
      },
      passWord: {
        label: '密码',
        rule: 'notEmpty'
      },
      passWord2: {
        label: '确认密码',
        rule: 'notEmpty,same[passWord]'
      },
	  code:{
        label: '验证码',
        rule: 'custom',
		reg:/^\d{4}$/,
		errMsg:'请输入4位数的验证码'
	  },
	  idCard:{
        label: '身份证号',
        rule: 'function',
		fun:function(value){
			return value.length===18;
		},
		errMsg:'请输入4位数的验证码'
	  }
    });

  },
  methods: {
    login() {	
		this.validate.check().then(data=>{
		 // 验证通过执行代码
		}).catch(errs=>{
		
		});
    }
  }
}
Last Updated: 1/9/2020, 5:13:35 PM