10-20位随机字母数字特殊符号密码

需求:点击按钮,生产随机密码,同时对用户输入的密码进行规则校验

规则:10-20位密码且必须包含至少一个字母、数字、(!@#$%^&*()_+)特殊字符

  • 规则校验:

调用方法:validatePassword(value) 为true则校验通过

// 校验密码的方法
export function validatePassword(password) {
  // const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%^*?&#])[A-Za-z\d@$!%*?&]{10,20}$/;
  const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*()_+]).{10,20}$/;
  return regex.test(password);
}

  • 生成随机密码

调用方法:passData.value.password = generateRandomString(Math.floor(Math.random() *11) + 10); 得到10-20位随机密码

// 生成随机字符串的方法
export function generateRandomString(length) {
  const characters =
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+";
  let result = "";
  for (let i = 0; i < length; i++) {
    result += characters.charAt(Math.floor(Math.random() * characters.length));
  }
  while (!validatePassword(result)) {
    result = generateRandomString(Math.floor(Math.random() * 11) + 10);
  }
  return result;
}

猜你喜欢

转载自blog.csdn.net/SunFlower914/article/details/130348995