async-validator 是一个表单异步校验库,阿里旗下的 Ant-design 和 Element 组件库中的表单验证使用的都是 async-validator ,目前版本已更新到 4.0.7 ,下载量达到 1,067,202次,不仅支持 js ,同时也可支持 typeScript 。是一个功能超级强大的库,有兴趣的一起来了解了解。 async-validator 官网地址: https://ww...
_proto.validate =functionvalidate(source_, o, oc) { ...varsource =source_;varoptions =o;varcallback =oc;//options 是可选参数//如果 options 是函数时,说明第二个是回调函数,options 是空对象if(typeofoptions === 'function') { callback=options; options={}; } ... }; 检查校验规则 检查...
平常开发写element表单的时候,肯定少不了表单的校验,element使用的是 async-validator 这个开源库。 image-20220517090312952 这篇文章详细分析一下async-validator的主流程。 使用方法 代码语言:javascript 代码运行次数:0 运行 AI代码解释 importSchemafrom'async-validator';constdescriptor={list:{required:true,type:'nu...
async-validator 支持多种内置校验规则,如 required、type、min、max、enum 等。同时,它也允许自定义校验规则。 自定义校验规则可以通过 validator 属性来定义,该属性接收一个返回 Promise 或布尔值的函数。 javascript const rules = { customField: [ { validator: (rule, value, callback) => { // 自定...
groupId: { type: 'number', required: true, message: '请选择所属分组' }, // 类型校验 // 枚举校验 role: { required: true, type: 'enum', enum: [1, 2, 3], message: '产品类型选择错误' }, // 多个规则 key: [ { required: true, pattern: /^[a-z_]+/, message: '请输入合法的...
importSchemafrom'async-validator';constdescriptor={name:{type:'string',required:true,validator:(rule,value)=>value==='muji',},age:{type:'number',asyncValidator:(rule,value)=>{returnnewPromise((resolve,reject)=>{if(value<18){reject('too young');// reject with error message}else{resolve(...
import asyncValidator from 'async-validator'; const Validator = asyncValidator.default; // 定义校验规则 const rules = { name: { type: 'string', required: true, validator: (rule, value) => value === 'muji', }, age: { type: 'number', ...
* @param options.messages The validation messages.*/export declare type ExecuteValidator=( rule: InternalRuleItem, value: Value, callback: (error?: string[]) =>void, source: Values, options: ValidateOption )=>void; 上述的解释翻译为中文: ...
在其背后的实现机制中,async-validator模块没有采用switch语句在单一的函数中完成类型判断,而是通过types对象设定每种类型的校验方法,接着通过调用types[type](value)方法实现类型校验,这样能使代码的结构变得清晰。 // src/rule/type.js const types = { integer(value) { return types.number(value) && parseInt...
在其背后的实现机制中,async-validator模块没有采用switch语句在单一的函数中完成类型判断,而是通过types对象设定每种类型的校验方法,接着通过调用types[type](value)方法实现类型校验,这样能使代码的结构变得清晰。 // src/rule/type.js const types = { integer(value) { return types.number(value) && parseInt...