UNPKG

async-validate.js

Version:

transform all validator to async or promise

174 lines (159 loc) 4.23 kB
##Async-Avalidate 是什么 Async-Avalidte是一个支持同步与异步模式的验证框架, 它可以十分方便的把验证条件转换为同一步模式进行处理, 并返回给开发者一个经过组织的结果 ##构建状态 [build-image]: https://travis-ci.org/darkty2009/async-validate.svg [build-url]: https://travis-ci.org/darkty2009/async-validate [license-image]: http://img.shields.io/badge/license-MIT-blue.svg [license-url]: https://github.com/darkty2009/async-validate/blob/master/LICENSE [![MIT License][license-image]][license-url] ## 安装 Node使用: ``` npm install async-validate.js ``` 浏览器使用: ``` <script type="text/javascript" src="validate.async.js"></script> ``` 所有的代码都在```validate.async.js```文件里, 当然,你也可以从这个[链接](http://5doe.com/custom/async-validate/validate.async-1.1.0.js)下载 ##快速起步 ```javascript AValidate({ val:/^\w+$/ }, {val:"abcdefg1"}); // console: {val:"error"} AValidate({ val:{ required:true, custom:/^\w+$/ } }, {val:"abcdefg1"}); // console: {val:{custom:"error"}} AValidate({ val:/^\w+$/ }, {val:"abcdefg"}); // console: null ``` 当验证成功时,方法会返回null。 当验证失败时,方法会返回具体的错误信息。 ##异步模式 ```javascript AValidate.async({ val:{ required:true, exist:function(opt, resolve, reject) { $.ajax({ url:"validate-user-id-exist", data:{id:opt.value}, success:function() { resolve(); }, error:function() { reject("is-not-exist"); } }) } } }, {val:12001}).then(function(message) { // console: message is null or undefined }).catch(function(message) { // console: {val:{exist:'is-not-exist'}} }); ``` ##默认的验证规则 ### required 参数:可选 true | false ### length 参数: 可选 [number] | [object] ```javascript { is:[number], max:[number], min:[number] } ``` 若参数为数字,则默认将其赋值给 [object].is ### number 参数: 可选 [number] | [object] ```javascript { '>':[number], '>=':[number], '==':[number], '<=':[number], '<':[number], 'or':false | true } ``` 若参数为数字,则默认将其赋值给 [object]['==']。 参数中的 or 默认为 false, 例如设置了 {'>=':1, '<':10} 转换后的条件为 val >=1 && val < 10 设置了 {'>=1':1, '<':10, or:true} 转换后的条件为 val >=1 || val < 10 ### include 参数: [array] 该规则的作用是验证给定的值是否在数组中 ### exclude 参数: [array] 该规则的作用是验证给定的仠不在数组中 ### email 参数: true | false 验证当前值是否为email格式 ### char 参数: [object] ```javascript { 'number':true | false, 'symbol':true | false, 'chinese':true | false, 'english':true | false } ``` 验证当前值是否满足字符类型要求 参数包含四个属性(默认值均为false): * number 数字 * symbol 特殊符号 注:`~!@#¥%……&*()_-=+[]|;:,. * chinese 中文 * english 英文 ## 自定义同步验证 ```javascript AValidate.add('same_password', function(opt) { if(opt.value != opt.data.password) { return false; } return true; }); ``` 参数: opt 包含三个属性 * value 当前字段的输入值 * data 当前所有的输入值 * param 当前验证条件的参数 ## 自定义异步验证 ```javascript AValidate.add('user_exist', function(opt, resolve, reject) { $.ajax({ url:"user_exist_check", data:{ user:opt.value }, success:function() { resolve(); }, error:function() { reject(); } }); }); ``` 参数: opt 包含三个属性 * value 当前字段的输入值 * data 当前所有的输入值 * param 当前验证条件的参数 参数: resolve 验证成功时调用 参数: reject 验证失败时调用 ## BUG反馈 先谢谢所有提供反馈的开发者 EMAIL: darkty2009#gmail.com 或者 [issues](https://github.com/darkty2009/async-validate/issues)