ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 创建验证 任何时候,都可以直接使用`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()) } ~~~