blear.classes.validation

1Introduction

2Example

var Validation = require('blear.class.validation');

var  va = new Validation();

va
    .field('username')
    .type('string')
    .required()
    .minLength(4)
    .maxLength(12);

va.validate({
    username: 'abcdef'
}, function(err) {
    // ...
});

3Static

3.1.defaults

3.1.1.defaults.skipInvalid

  • 类型:Boolean
  • 说明:是否跳过非法验证继续后面的验证
  • 默认:false
    • false:出错就不再继续验证(最多只可能一个错误结果)
    • true:出错继续验证后面的数据(可能会有多个错误结果)

3.1.2.default.override

  • 类型:Boolean
  • 说明:表单验证的数据是否可以被验证规则覆盖,比如 trim 操作
  • 默认:true

3.2.rule(rule): validator

获取静态规则。

3.2.1rule

  • 类型:string
  • 说明:规则名称,包含的规则有:
    • equal
    • max
    • maxLength
    • min
    • minLength
    • pattern
    • required
    • trim
    • type

3.3.rule(rule, validator)

自定义静态规则。

3.3.1rule

  • 类型:string
  • 说明:规则名称

3.3.2validator

  • 类型:Function(value) | Function(value, next)
  • 说明:验证函数
    • 同步函数
      Validation.rule('a', function(value) {
         return new Error('巴拉巴拉');
      });
      
    • 异步函数
      Validation.rule('b', function(value, next) {
         ajax(function() {
            next(new Error('balabala'));
         });
      });
      

4Prototype

原型属性、方法

4.1#filed(name, alias): this

指定字段。

va.field('username', '用户名');

4.1.1name

  • 类型:String
  • 说明:字段

4.1.2alias

  • 类型:String
  • 说明:别名

4.2#enable(enabing): this

指定当前字段是否有效。使用场景是:

  • 根据用户名判断当前用户是否可用
  • 用户名和邮箱只选其一

4.2.1enabing

  • 类型:Boolean | function(value) | function(value, next)
  • 说明:表达当前字段是否需要验证
    • 直接判断
      va.field('a').enable(true);
      
    • 同步函数
      va.field('b').enable(function(value) {
          return true;
      });
      
    • 异步函数
      va.field('c').enable(function(value, next) {
          ajax(function() {
             next(true);
          });
      });
      

4.3#rule(rule): validator

返回实例级别的验证规则。

4.3.1rule

  • 类型:String
  • 说明:规则名称

4.4#rule(rule, validator): this

自定义实例级别的验证规则。

4.4.1rule

  • 类型:String
  • 说明:规则名称

4.4.2validator

  • 类型:Function(value) | Function(value, next)
  • 说明:验证函数
    • 同步函数
      va.rule('a', function(value) {
         return new Error('巴拉巴拉');
      });
      
    • 异步函数
      va.rule('b', function(value, next) {
         ajax(function() {
            next(new Error('balabala'));
         });
      });
      

4.5#constrain(rule): this

使用已经定义好的规则,包含静态规则、实例规则。

4.5.1rule

  • 类型:string
  • 说明:规则

4.6#constrain(rule, limit): this

使用已经定义好的规则,包含静态规则、实例规则。

4.6.1rule

  • 类型:string
  • 说明:规则

4.6.2limit

  • 类型:string
  • 说明:规则值

4.7#constrain(rule, limit, message): this

使用已经定义好的规则,包含静态规则、实例规则。

4.7.1rule

  • 类型:string
  • 说明:规则

4.7.2limit

  • 类型:string
  • 说明:规则值

4.7.3message

  • 类型:string
  • 说明:自定义消息,重写规则的默认消息

4.8#trim(): this

去除当前验证值的左右空白。

4.9#type(type, [message]): this

验证字段类型。

4.9.1type

  • 类型:string
  • 说明:类型
    • string:字符串
    • number:数值
    • boolean:布尔值
    • array:数组
    • object:对象
    • function:函数
    • mobile:手机号
    • email:邮箱
    • numerical:数值
    • digital:数字
    • integer:整数
    • urlhttp:url
    • idNo:大陆身份证

4.9.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 必须是字符串格式

4.10#required([message]): this

必填。

4.10.1message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 不能为空

4.11#minLength(minLength, [message]): this

最小长度(含)。

4.11.1minLength

  • 类型:number
  • 说明:最小长度

4.11.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 不能少于 yy 个长度

4.12#maxLength(maxLength, [message]): this

最大长度(含)。

4.12.1maxLength

  • 类型:number
  • 说明:最大长度

4.12.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 不能超过 yy 个长度

4.13#min(min, [message]): this

最小值(含)。

4.13.1min

  • 类型:number
  • 说明:最小值

4.13.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 不能小于 yy

4.14#max(max, [message]): this

最大值(含)。

4.14.1max

  • 类型:number
  • 说明:最大值

4.14.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 不能大于 yy

4.15#equal(name, [message]): this

等于某个字段,如确认密码等于密码。

4.15.1name

  • 类型:string
  • 说明:字段

4.15.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 必须与 yy 相同

4.16#pattern(pattern, [message]): this

自定义正则表达式。

4.16.1pattern

  • 类型:RegExp
  • 说明:正则

4.16.2message

  • 类型:string
  • 说明:重写消息
  • 默认:xx 不合法

4.17#validate(data, callback(err)): undefined

验证数据

4.17.1data

  • 类型:Object
  • 说明:待验证的数据

4.17.2callback

  • 类型:Function
  • 说明:验证回调

4.17.3callback: err

  • 类型:Error | Array
  • 说明:错误信息,当 skipInvalid = true 时,err 是一个数组;否则一个 Error 对象

err 包含 context 属性,以下的 ruleenable 的函数的上下文也是 context

  • err.context.options:参数配置
  • err.context.alias:当前错误字段别名
  • err.context.limit:当前错误字段限制值
  • err.context.message:当前错误字段消息
  • err.context.name:当前错误字段键名
  • err.context.rule:当前错误字段规则
  • err.context.value:当前错误字段键值
  • err.context.data:当前验证数据
  • err.context.aliases:当前验证数据别名组

5Dependencies