From 3a60a715456efbab07ae94abd0dd971afb991ea2 Mon Sep 17 00:00:00 2001 From: zhaoxiao Date: Wed, 20 Oct 2021 16:12:49 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/tools/UserPassword.vue | 31 +++++++++++++++++---------- src/utils/validate.js | 2 +- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/components/tools/UserPassword.vue b/src/components/tools/UserPassword.vue index 0388b32..3914082 100644 --- a/src/components/tools/UserPassword.vue +++ b/src/components/tools/UserPassword.vue @@ -15,7 +15,8 @@ :labelCol="labelCol" :wrapperCol="wrapperCol" label="旧密码"> - + ?,./]).{8,}$/, - message: '密码由8位及以上数字、大小写字母和特殊符号组成!' - }, - { validator: this.compareToFirstPassword } - ], + rules: [{ + required: true, message: '请确认新密码!', + }, { + validator: this.compareToFirstPassword, + }], + // rules: [ + // { required: true, message: '请确认新密码!' }, + // { + // pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, + // message: '密码由8位及以上数字、大小写字母和特殊符号组成!' + // }, + // { validator: this.compareToFirstPassword } + // ], validateTrigger: 'blur' } }, @@ -167,9 +174,11 @@ export default { const form = this.form if (value && value !== form.getFieldValue('password')) { callback('两次输入的密码不一样!') - } else { - callback() } + if (value && !passwordReg(value)) { + callback('密码由8位及以上数字、大小写字母和特殊符号组成!') + } + callback() }, handleConfirmBlur(e) { const value = e.target.value diff --git a/src/utils/validate.js b/src/utils/validate.js index 6214f1a..fbdfb8c 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -28,7 +28,7 @@ export function isURL(s) { * message: 密码长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中的3类 */ export function passwordReg(s) { - return /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/.test(s) + return /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/.test(s) } /**