Skip to content

darkty2009/async-validate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##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文件里, 当然,你也可以从这个链接下载

##快速起步

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。 当验证失败时,方法会返回具体的错误信息。

##异步模式

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]

{
    is:[number],
    max:[number],
    min:[number]
}

若参数为数字,则默认将其赋值给 [object].is

number

参数: 可选 [number] | [object]

{
    '>':[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]

{
    'number':true | false,
    'symbol':true | false,
    'chinese':true | false,
    'english':true | false
}

验证当前值是否满足字符类型要求 参数包含四个属性(默认值均为false):

  • number 数字
  • symbol 特殊符号 注:`~!@#¥%……&*()_-=+[]|;:,.
  • chinese 中文
  • english 英文

自定义同步验证

AValidate.add('same_password', function(opt) {
    if(opt.value != opt.data.password) {
        return false;
    }
    return true;
});

参数: opt 包含三个属性

  • value 当前字段的输入值
  • data 当前所有的输入值
  • param 当前验证条件的参数

自定义异步验证

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

About

lightweight, nested and async validate tool, it's just tell you what's wrong and dont care the VIEW.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published