针对表单有许多的验证要做,这个简单诠释了验证的写法
1、vue 页面代码
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form-item
label="bizCode"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback="">
<a-input placeholder="请输入bizCode"
v-decorator="['bizCode', {rules: [
{required: true, message: '请输入bizCode!'},
{ min: 3, max: 4, message: 'bizCode需在2-4位之间', trigger: 'blur' },
{required: true, message: '请填写邮箱!'},
{validator:EmailValidator}
]}]"/>
</a-form-item>
2、vue 验证规则代码
methods: {
EmailValidator(rule, value, callback){
const idcardReg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
if (!idcardReg.test(value)) {
// eslint-disable-next-line standard/no-callback-literal
callback('邮箱格式不正确')
}
// Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
callback()
}
}
3、其他的一些验证规则
// 手机号验证
MobileNumberValidator (rule, value, callback) {
const idcardReg = /^1(3|4|5|6|7|8|9)\d{9}$/
if (!idcardReg.test(value)) {
// eslint-disable-next-line standard/no-callback-literal
callback('非法格式')
}
// Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
callback()
},
// 邮箱验证
EmailValidator (rule, value, callback) {
const idcardReg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
if (!idcardReg.test(value)) {
// eslint-disable-next-line standard/no-callback-literal
callback('非法格式')
}
// Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
callback()
},
// 身份证验证
IDValidator (rule, value, callback) {
const idcardReg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/
if (!idcardReg.test(value)) {
// eslint-disable-next-line standard/no-callback-literal
callback('非法格式')
}
// Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
callback()
}