密码验证 8-20位,数字、大小字母、特殊字符至少三种!

1/3/2022 React QS
/**
 * 密码验证 8-20位,数字、大小字母、特殊字符至少三种!
 * @param string
 */
export function checkPwd(pwd: string) {
  let check = 0;
  for (let i = 0; i < pwd.length; i++) {
    let c = pwd[i].charCodeAt();
    if (c < 33 || c > 126) {
      return false;
    }
    if (c >= 65 && c <= 90) {
      check = check | (1 << 0);
    } else if (c >= 97 && c <= 122) {
      check = check | (1 << 1);
    } else if (c >= 48 && c <= 57) {
      check = check | (1 << 2);
    } else {
      check = check | (1 << 3);
    }
  }
  let count = 0;
  for (let i = 0; i < 4; i++) {
    if ((check & (1 << i)) > 0) {
      count++;
    }
  }
  return count >= 3;
}
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
Last Updated: 1/4/2022, 8:07:43 AM