Commit 58bff70e authored by 高滢's avatar 高滢

feat(密码): 校验

parent 40bb629d
...@@ -615,12 +615,29 @@ export default { ...@@ -615,12 +615,29 @@ export default {
{ required: true, message: '用户昵称不能为空', trigger: 'blur' } { required: true, message: '用户昵称不能为空', trigger: 'blur' }
], ],
password: [ password: [
{ required: true, message: '用户密码不能为空', trigger: 'blur' },
{ {
required: true,
min: 6, min: 6,
max: 20, max: 20,
message: '用户密码长度必须介于 6 和 20 之间', message: '用户密码长度必须介于 6 和 20 之间',
trigger: 'blur' trigger: 'blur'
},
{
required: true,
validator: (rule, value, callback) => {
if (!value) {
return callback(new Error('用户密码不能为空'))
}
// 正则表达式:至少一个大写字母、一个小写字母、一个数字和一个特殊字符
const regex =
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,20}$/
if (!regex.test(value)) {
callback(new Error('密码必须包含大小写字母、数字和特殊字符'))
} else {
callback()
}
},
trigger: 'blur'
} }
], ],
email: [ email: [
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</el-form-item> </el-form-item>
<el-form-item label="确认密码" prop="confirmPassword"> <el-form-item label="确认密码" prop="confirmPassword">
<el-input <el-input
v-model.trim="user.newPassword" v-model.trim="user.confirmPassword"
placeholder="请确认新密码" placeholder="请确认新密码"
type="password" type="password"
show-password show-password
...@@ -64,9 +64,10 @@ export default { ...@@ -64,9 +64,10 @@ export default {
}, },
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
const pattern = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[^\da-zA-Z]).{6,20}$/ const pattern =
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,20}$/
if (!pattern.test(value)) { if (!pattern.test(value)) {
callback(new Error('必须包含数字、字母和英文字符,长度6~20位')) callback(new Error('必须包含数字、大小写字母和特殊字符'))
} else { } else {
callback() callback()
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment