# 创建验证

任何时候,都可以直接使用Validate类而不需要定义验证器类进行独立的验证操作,例如:

const validate = Validate.make({
    'name' : 'require|max:25',
    'mail' : 'mail'
});

const data = {
    'name' : '名字',
    'mail' : '123456@qq.com'
};

if(!validate.check(data)){
    console.log(validate.getError())
}

make方法直接传入验证规则(对象),check方法传入需要验证的数据(对象)。

# 自定义验证规则

独立验证时可通过Validate.extend来动态扩展方法





 




function check_name(value, rule, data = {}){
    return value === rule ? true : '用户名错误';
}

validate.extend(check_name)
if(!validate.check(data)){
    console.log(validate.getError())
}

也可以使用闭包方式进行扩展

validate.extend('check_name',function(value, rule, data = {}){
    return value === rule ? true : '用户名错误';
});

if(!validate.check(data)){
    console.log(validate.getError())
}

验证方法可以传入的参数共有4个(后面两个根据情况选用),依次为:

  • 验证数据
  • 验证规则
  • 全部数据(数组)
  • 其他数据(数组)如check_name:michael:1:2 此处为除去michael以外的1,2数据

更多自定义验证规则方法

# 设置字段信息

验证类的架构方法支持使用setField方法批量设置字段的描述信息,例如:











 
 
 
 





const validate = Validate.make({
    'name' : 'require|length:6,16',
    'mail' : 'mail'
});

const data = {
    'name' : '名字',
    'mail' : '123456@qq.com'
};

validate.setField({
    'name' : '用户名',
    'mail' : '邮箱'
});

if(!validate.check(data)){
    console.log(validate.getError())
}

# 错误提示信息

如果要使用自定义的错误信息,可以使用setMsg方法:









 
 
 
 
 





 const data = {
     'name' : '名字',
     'mail' : '123456@qq.com'
 };
 
 const validate = Validate.make({
     'name' : 'require|length:6,16',
     'mail' : 'mail'
 }).setMsg({
     'name.require' : '用户名必须填写',
     'name.length'  : '用户名长度错误',
     'mail.mail'    : '邮箱格式错误',
})

 if(!validate.check(data)){
     console.log(validate.getError())
 }