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) } /**