## 创建验证
任何时候,都可以直接使用`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())
}
~~~