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; } });