Files
ebiz-h5/src/assets/js/utils/validator.js
liu.xiaofeng@ebiz-digits.com 3129686bc4 姓名录入校验修改
2024-04-25 17:35:38 +08:00

225 lines
5.9 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)
});
//手机号长度为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;
}
});