diff --git a/src/pages/LoginPage.vue b/src/pages/LoginPage.vue index 7e78b32..b98d7c2 100644 --- a/src/pages/LoginPage.vue +++ b/src/pages/LoginPage.vue @@ -103,7 +103,7 @@ const applyForm = reactive({ password_confirmation: '', }) const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ -const phoneRegex = /^1\d{10}$/ +const phoneRegex = /^1[3-9]\d{9}$/ const rules: FormRules = { account: [{ required: true, @@ -125,8 +125,32 @@ const rules: FormRules = { } const applyRules: FormRules = { nickname: [{ required: true, message: '请输入昵称', trigger: 'blur' }], - email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }], - phone: [{ required: true, message: '请输入手机号', trigger: 'blur' }], + email: [ + { required: true, message: '请输入邮箱', trigger: 'blur' }, + { + trigger: 'blur', + validator: (_rule, value, callback) => { + if (!emailRegex.test(String(value || '').trim())) { + callback(new Error('请输入正确的邮箱')) + return + } + callback() + }, + }, + ], + phone: [ + { required: true, message: '请输入手机号', trigger: 'blur' }, + { + trigger: 'blur', + validator: (_rule, value, callback) => { + if (!phoneRegex.test(String(value || '').trim())) { + callback(new Error('请输入正确的手机号')) + return + } + callback() + }, + }, + ], password: [{ required: true, message: '请输入密码', trigger: 'blur' }], password_confirmation: [{ required: true, message: '请再次输入密码', trigger: 'blur' }], }