README
WxValidator
一款集轻量、易用、扩展性强的JS表单验证组件
Install
npm i wxvalidator -S
Usage
构造器
WxValidator(src, rules, messages)
arguments
src:
Object
待验证的数据rules:
object
验证规则, 该对象的key与src的key保持一致,默认的验证规则有:required
: 值不能为空email
: 电子邮箱格式phone
: 手机号码格式date
: 日期格式, 如:YYYY-MM-DDmessages:
object
错误信息,命名的方式为 规则名 + '.' + 数据对象的 key
创建WxValidator实例 ,栗子如下:
var form = {
userName: 'zhangdaiz',
userEmail: '954752458@qq.com',
telPhone: '88888888666'
}
var vaildator = new WxValidator(form, {
userName: 'required',
userEmail: 'required|email',
telPhone: 'required|phone'
}, {
'required.userName': '请输入用户名',
'required.userEmail': '请输入邮箱地址',
'required.telPhone': '请输入电话号码',
'email.userEmail': '请输入正确的邮箱格式',
'phone.telPhone': '请输入正确的电话格式'
})
ApiReference
实例方法
validator.validate 验证
validator.validate()
验证这个form表单的数据,整体验证通过,返回true, 否则返回false;注意之后的实例其他api均为在validate调用之后并返回false,才能正常使用
validator.collectedErrors 错误信息对象
默认为空对象{},调用 validator.validate返回false后,数据才会更新
数据结构如下:
validator.collectedErrors = { phone: ['请输入手机号码', '手机号码格式不正确'], name: ['请输入名字'] }
validator.getError 获取错误信息
validator.getError(key)
key:String
通过src的key获取对应的错误信息
静态方法
WxValidator.register
WxValidator.register(rule, handler)
注册自定义验证规则rule:
String
规则名handler:
Function
控制器 参数val
待验证的值, 返回类型为Boolean
WxValidator.singleValid
WxValidator.singleValid(val, rule, message)
单一普通值快速验证 ,return boolean
val:
Mixed
待验证数据rule:
String
验证规则message:
String
错误信息返回一个结果对象:{ result: {Boolean}, msg: {String} }
在MVVM框架中的用法(vue, wepy, mpvue...)
简单例子:
View层
<div class="form-group">
<input type="text" class="form-control" v-model="name" placeholder="名字" />
<span style="color:red;" v-if="validation && validation.allErrors && validation.allErrors['name']">
{{validation.allErrors['name'][0]}}
</span>
</div>
<button @click="check">验证</button>
Model层
{
data () {
return {
name: '',
validation: null
}
},
methods: {
createValidator() {
this.validation = new WxValidator(
{
name: this.name
},
{
name: 'required'
},
{
'required.name': '请输入名字'
}
);
},
check() {
this.createValidator();
//当调用validation.validate返回false时,会更新allError对象数据,稍后框架会异步更新
//vnodes,错误信息就会呈现在您的屏幕
if (!this.validation.validate()) {
}
//接下来自由发挥
}
}
}