## 創建驗證
任何時候,都可以直接使用`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())
}
~~~