Skip to content

sclear/Validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

j_validator(异步验证)


目的:项目中不一定会引入asyn validator等插件,也不一定会引用到某ui插件,或许我们想要的仅仅是数据层面上的验证.只追求轻量,我们可以使用到它,因为它只有仅仅几十行代码

验证

  • message: 错误信息.
  • required: 是否必填项.
  • max: 该项最大长度.
  • min: 该项最小长度.
  • type: 数据类型检测( Object.prototype.toString.call() ).
  • reg: 使用正则验证.
  • enum: 枚举可选类型.
  • same: 该项等于(===)验证规则.
  • validator: 复杂逻辑使用自定义方法验证(callback()).

err 错误信息数组(以data数据序列为准) length 大于0时 校验为不通过 err具体信息看以下实例 length 等于0时 校验通过

用法(你如果有使用过async validator,你将会很快学会使用它)

// 规则
let rule = {
    name: { required: true, type: 'String', max: 10, min: 2, message: '姓名填写有误' },
    phone: { required: true, reg: /1[0-9]{10}/g ,message: '电话填写有误' }
    sex: { enum: ['男', '女'], message: '性别填写错误' },
    like: [
        { required: true, type: 'Array', message: '该项填写错误' },
        { validator: function(rule, value, callback) {
            if( value.length < 3 ) {
                callback()
            }
            else{
                callback( new Error('喜欢的项目过少') )
            }
        } }
    ]
}
let data = {
    name: 'Chao jiang',
    phone: '18482155012',
    sex: '男',
    like: ['唱', '跳', 'Rap', '篮球']
}
import j_validator from 'j_j_validator'
let validator = new j_validator(rule)
validator.valid(data)
    .then(err=> {
        // err 错误信息(err: Array)
        // ps: 第一项错误 err => [{ err_key: 'name', err_messge: '姓名填写有误' }]
        // ps: 第一项与第二项错误 err =>  
        //                        [
        //                          {err_key: 'name', err_messge: '姓名填写有误' },
        //                          { err_key: 'phone', err_messge: '电话填写有误' }
        //                        ]
    })

About

⚡轻量级的JavaScript数据验证,可用于任何使用JavaScript的项目中

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published