//表单校验规则 export const ruleGenerator = { // 必填字段 required(message = '此字段为必填项') { return { required: true, message, trigger: 'blur' } }, // 长度限制 length(min, max, fieldName = '') { const message = fieldName ? `${fieldName}长度应在${min}到${max}个字符之间` : `长度应在${min}到${max}个字符之间` return { validator: (rule, value, callback) => { if (!value || (value.length >= min && value.length <= max)) { callback() } else { callback(new Error(message)) } }, trigger: 'blur' } }, // 手机号验证 phone() { return { validator: (rule, value, callback) => { const reg = /^1[3-9]\d{9}$/ if (!value || reg.test(value)) { callback() } else { callback(new Error('请输入正确的手机号码')) } }, trigger: ['blur', 'change'] } }, //验证码验证 code() { return { validator: (rule, value, callback) => { const reg = /^\d{4}$/ if (!value || reg.test(value)) { callback() } else { callback(new Error('请输入正确的验证码')) } }, trigger: ['blur', 'change'] } }, password() { return { validator: (rule, value, callback) => { const reg = /^\d{6}$/ if (!value || reg.test(value)) { callback() } else { callback(new Error('密码格式为6个字符')) } }, trigger: ['blur', 'change'] } }, // 多选框验证 checkbox(message) { return { validator: (rule, value, callback) => { if (!value) { callback(new Error(message)); } else { callback(); } }, trigger: 'change' } }, // 邮箱验证 email() { return { validator: (rule, value, callback) => { const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ if (!value || reg.test(value)) { callback() } else { callback(new Error('请输入正确的邮箱地址')) } }, trigger: 'blur' } } }