mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-10 11:36:45 +08:00
225 lines
5.9 KiB
JavaScript
225 lines
5.9 KiB
JavaScript
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)
|
||
});
|
||
|
||
//手机号长度为11位
|
||
Validator.extend('mobileLength11', {
|
||
getMessage: () => '亲,手机号码位数不正确哦~',
|
||
// validate: value => value.length === 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value)
|
||
validate: value => value.length === 11
|
||
});
|
||
//手机号长度为11位
|
||
Validator.extend('mobileStartWith1', {
|
||
getMessage: () => '亲,手机号码必须以1开头哦~',
|
||
// validate: value => value.length === 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value)
|
||
validate: value => value[0] == '1'
|
||
});
|
||
//非空
|
||
Validator.extend('required', {
|
||
getMessage(field) {
|
||
return field + '不能为空';
|
||
},
|
||
validate(value) {
|
||
if (value != null && value != undefined) {
|
||
value = String(value);
|
||
}
|
||
if (value && value.trim()) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
|
||
//邮箱
|
||
Validator.extend('email', {
|
||
getMessage: () => '邮箱格式错误',
|
||
validate(value) {
|
||
//return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(value);
|
||
return /^([a-z0-9_\.-]+)@([0-9A-Za-z\.-]+)\.([a-z\.]{2,6})$/.test(value);
|
||
}
|
||
});
|
||
|
||
//名字
|
||
Validator.extend('name', {
|
||
getMessage: () => '姓名长度为2-120个字符之内,只能输入汉字或者英文',
|
||
validate: value => {
|
||
return value
|
||
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
|
||
// return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
|
||
}
|
||
});
|
||
//sale 投保名字 2个汉字,4个字母
|
||
Validator.extend('salename', {
|
||
getMessage: () => '亲,请确认您录入的姓名是否正确哦~',
|
||
validate: value => {
|
||
return value
|
||
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
|
||
// return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
|
||
// return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
|
||
}
|
||
});
|
||
// sale - 详细地址 - 详细地址须同时包含汉字和数字,
|
||
Validator.extend('homeAddressNum', {
|
||
getMessage: () => '亲,详细地址必须具体到街道、门牌号、楼号、单元号、室号哦~',
|
||
validate: value => {
|
||
return /[0-9]/.test(value);
|
||
}
|
||
});
|
||
Validator.extend('homeAddressCh', {
|
||
getMessage: () => '亲,详细地址必须具体到街道、门牌号、楼号、单元号、室号哦~',
|
||
validate: value => {
|
||
return /[\u4e00-\u9fa5]/.test(value);
|
||
}
|
||
});
|
||
//年龄
|
||
Validator.extend('age', {
|
||
getMessage: () => '年龄不得小于18岁',
|
||
validate: value => {
|
||
return value > 17 && /^\d{1,3}$/.test(value);
|
||
}
|
||
});
|
||
//年龄(不得大于100周岁)
|
||
Validator.extend('maxAge', {
|
||
getMessage: () => '年龄不得大于100周岁',
|
||
validate: value => {
|
||
return value <= 100 && /^\d{1,3}$/.test(value);
|
||
}
|
||
});
|
||
//被保险人年龄(不得小于18周岁)
|
||
Validator.extend('appntAge', {
|
||
getMessage: () => '年龄不得小于16周岁',
|
||
validate: value => {
|
||
return value > 15 && /^\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,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;
|
||
}
|
||
});
|
||
|
||
//同业公司
|
||
Validator.extend('sameCompany', {
|
||
getMessage: () => '同业公司长度不超过120个字符,不支持特殊字符',
|
||
validate: value => {
|
||
return /^[0-9a-zA-Z\.\s\u4e00-\u9fa5]{1,120}$/.test(value);
|
||
}
|
||
});
|
||
//从业年限
|
||
Validator.extend('workYears', {
|
||
getMessage: () => '从业年限仅支持阿拉伯数字,最多精确到一位小数',
|
||
validate: value => {
|
||
return /^[0-9]+([.]{1}[0-9]{1})?$/.test(value) && value > 0;
|
||
}
|
||
});
|
||
//最大长度120字符
|
||
Validator.extend('max120', {
|
||
getMessage: () => '输入内容不得超过120个字符',
|
||
validate: value => {
|
||
return value.length < 121;
|
||
}
|
||
});
|
||
|
||
//名字
|
||
Validator.extend('manpowerName', {
|
||
getMessage: () => '请输入正确的姓名',
|
||
validate: value => {
|
||
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
|
||
return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
|
||
}
|
||
});
|
||
|
||
//名字
|
||
Validator.extend('contactAdderss', {
|
||
getMessage: () => '请选择正确的联系地址',
|
||
validate: value => {
|
||
if (!value) {
|
||
return false;
|
||
}
|
||
return value.split('-').length === 3;
|
||
}
|
||
});
|