From aee253e972a4b909b918d65727fb8a8145c33016 Mon Sep 17 00:00:00 2001 From: jiangpeng <1649773715@qq.com> Date: Tue, 16 Jun 2026 15:19:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ResetPassword/index.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/views/ResetPassword/index.vue b/src/views/ResetPassword/index.vue index 25605e4..bea0b47 100644 --- a/src/views/ResetPassword/index.vue +++ b/src/views/ResetPassword/index.vue @@ -101,11 +101,17 @@ const emailCodeLoading = ref(false) const emailCodeCountdown = ref(0) let emailCodeTimer: ReturnType | null = null -const passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,20}$/ +const validatePassword = (value: string) => { + if (!value) return true + if (value.length < 8 || value.length > 20) return false + + const ruleCount = [/[A-Z]/, /[a-z]/, /\d/, /[^A-Za-z0-9]/].filter((pattern) => pattern.test(value)).length + return ruleCount >= 3 +} const newPasswordRules = [ { required: true, message: '请输入新密码' }, - { pattern: passwordPattern, message: '不符合密码规则' } + { validator: validatePassword, message: '密码需为8-20位,且大写字母、小写字母、数字、特殊符号至少满足3种' } ] const confirmPasswordRules = [