he wei
2025-04-23 b9bd29a1a81f6f7de479e3cc3fdfe3d85fc660bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
 * 获取密码的校验规则
 * @param type 密码的校验类型
 * @param num 密码的最小长度
 * @returns {{msg: string, pattern: string, regVal: boolean}}
 */
function getPasswordRule(type, num) {
  let result = {
    pattern: "",
    regVal: false,
    msg: ""
  };
  // type = 5;
  // num = 8;
  switch (Number(type)) {
    case 1:
      result.pattern = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$");
      result.msg="最少"+num+"个字符,至少1个大写字母,1个小写字母和1个数字";
      break;
    case 2:
      result.pattern = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$");
      result.msg="最少"+num+"个字符,至少1个大写字母,1个小写字母和1个特殊字符";
      break;
    case 3:
      result.pattern = new RegExp("^(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$");
      result.msg="最少"+num+"个字符,至少1个大写字母,1个数字和1个特殊字符";
      break;
    case 4:
      result.pattern = new RegExp("^(?=.*[a-z])(?=.*\\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$");
      result.msg = "最少"+num+"个字符,至少1个小写字母,1个数字和1个特殊字符";
      break;
    default:
      result.pattern = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$");
      result.msg="最少"+num+"个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符";
      break;
  }
  return result;
}
 
export default getPasswordRule;