Files
ebiz-h5/src/assets/js/utils/validator.js

141 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import Vue from 'vue'
import VeeValidate, {
Validator
} from 'vee-validate'
import zh_CN from 'vee-validate/dist/locale/zh_CN'
import idNoCheck from './idNoCheck'
Vue.use(VeeValidate)
Validator.locale = 'zh_CN'
Validator.localize('zh_CN', {
messages: zh_CN.messages
})
/*自定义校验规则*/
//手机号
Validator.extend('mobile', {
getMessage: () => '手机格式不正确',
// validate: value => value.length === 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value)
validate: value => value.length === 11 && /^1\d{10}$/.test(value)
})
//非空
Validator.extend('required', {
getMessage(field) {
return field + '不能为空'
},
validate(value) {
if (value != null && value != undefined) {
value = String(value)
}
if (value) {
return true
}
return false
}
})
//邮箱
Validator.extend('email', {
getMessage: () => '邮箱格式错误',
validate(value) {
return /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(value)
}
})
//名字
Validator.extend('name', {
getMessage: () => '名字长度不超过2-120个字符',
validate: value => {
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value)
}
})
//年龄
Validator.extend('age', {
getMessage: () => '年龄不得小于18岁',
validate: value => {
return value > 17 && /^\d{1,3}$/.test(value)
}
})
//被保险人年龄不得小于18周岁
Validator.extend('appntAge', {
getMessage: () => '年龄不得小于18周岁',
validate: value => {
return value > 17 && /^\d{1,3}$/.test(value)
}
})
//身份证号校验规则
Validator.extend('idNo', {
getMessage() {
return '您填写的证件号码有误只能为18位以内数字或字母组合'
},
validate(value) {
if (idNoCheck.isIdno(value)) {
return true
}
return false
}
})
// 银行卡校验规则则
Validator.extend('bankCard', {
getMessage(field) {
return field + '格式不正确,请您填写正确的格式'
},
validate: value => {
return /^(\d{16}|\d{18}|\d{19})$/.test(value)
}
})
// 邮编
Validator.extend('zipCode', {
getMessage() {
return '您输入的邮编有误,请重新输入'
},
validate: value => {
return /^[0-9]{6}$/.test(value)
}
})
// 只能是数字
Validator.extend('onlyNumber', {
getMessage: field => field + '只能输入数字',
validate: value => {
if (!/^\d+$|^\d+[.]?\d+$/.test(value)) {
return false
}
return true
}
})
// 只能是正整数
Validator.extend('onlyInteger', {
getMessage: field => field + '输入错误',
validate: value => {
if (!/^[0-9]\d*$/.test(value)) {
return false
}
return true
}
})
// 身高
Validator.extend('stature', {
getMessage: () => '身高输入有误',
validate: value => {
return /^[0-9]{0,3}([.]{1}[0-9]{1})?$/.test(value) && value < 300 && value > 10
// if (value > 250) {
// return false
// }
// return true
}
})
// 体重
Validator.extend('avoirdupois', {
getMessage: () => '体重输入有误',
validate: value => {
return /^[0-9]+([.]{1}[0-9]{1})?$/.test(value) && value > 0.1
}
})