|
|
@@ -35,17 +35,26 @@ const equalToPassword = (rule: any, value: string, callback: any) => {
|
|
|
callback();
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
+const validateNewPassword = (rule: any, value: string, callback: any) => {
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error('新密码不能为空'));
|
|
|
+ } else if (value.length < 6 || value.length > 20) {
|
|
|
+ callback(new Error('长度在 6 到 20 个字符'));
|
|
|
+ } else if (!/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[+_!@#$%^&*.,?])[A-Za-z\d+_!@#$%^&*.,?]{6,20}$/.test(value)) {
|
|
|
+ callback(new Error('必须包含大小写字母、数字和特殊符号(+_!@#$%^&*.,?)'));
|
|
|
+ } else if (/<|>|"|'|\||\\/.test(value)) {
|
|
|
+ callback(new Error('不能包含非法字符:< > " \' \\\ |'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
const rules = ref({
|
|
|
oldPassword: [{ required: true, message: '旧密码不能为空', trigger: 'blur' }],
|
|
|
newPassword: [
|
|
|
{ required: true, message: '新密码不能为空', trigger: 'blur' },
|
|
|
- {
|
|
|
- min: 6,
|
|
|
- max: 20,
|
|
|
- message: '长度在 6 到 20 个字符',
|
|
|
- trigger: 'blur'
|
|
|
- },
|
|
|
- { pattern: /^[^<>"'|\\]+$/, message: '不能包含非法字符:< > " \' \\\ |', trigger: 'blur' }
|
|
|
+ { validator: validateNewPassword, trigger: 'blur' }
|
|
|
],
|
|
|
confirmPassword: [
|
|
|
{ required: true, message: '确认密码不能为空', trigger: 'blur' },
|