import type { RuleObject } from "ant-design-vue/es/form"; //正则 const mobileReg = /^(((13[0-9]{1})|(14[5-7]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[3-8]{1})|(18[0-9]{1})|(19[0-9]{1}))+\d{8})$/; // 表单验证 export const formRulesFn = (userForm) => { return { email: [ { required: true, message: "请输入邮箱!", trigger: ["blur"] }, { type: "email", message: "输入格式有误!", trigger: ["change", "blur"] }, ], password: [ { validator: async (_rule: RuleObject, value: string) => { return validatePass(_rule, value); }, trigger: ["blur"], }, ], confirmPassword: [ { validator: async (_rule: RuleObject, value: string) => { return validatePass2(_rule, value, userForm.password); }, trigger: ["blur"], }, ], verifyCode: [ { required: true, message: "请输入验证码!", trigger: ["blur"] }, ], mobile: [ { validator: async (_rule: RuleObject, value: string) => { return validateMobile(_rule, value); }, trigger: ["blur"], }, ], }; }; const validatePass = async (_rule: RuleObject, value: string) => { if (value === undefined || value === "") { return Promise.reject("请输入密码!"); } else if (value.length > 16) { return Promise.reject("密码长度最大不能超过16位!"); } else { return Promise.resolve(); } }; const validatePass2 = async (_rule: RuleObject, value: string, password) => { if (value === undefined || value === "") { return Promise.reject("请输入密码!"); } else if (password !== value) { return Promise.reject("两次密码输入不一致!"); } else { return Promise.resolve(); } }; const validateMobile = async (_rule: RuleObject, value: string) => { if (value === "" || value === undefined) { return Promise.reject("请输入手机号码"); } else if (!mobileReg.test(value)) { return Promise.reject("手机号码格式不正确"); } else { return Promise.resolve(); } };