js实现生成随机密码字符串,可自定义包含类型与位数。

原文参考地址

const UPPERCASE = 1; // 包含大写字母
  LOWERCASE = 2; // 包含小写字母
  NUMBER = 4; // 包含数字

  let RandomString = (len, include) => {
    len = len || 8; // 默认生成8位长度
    include = include || 7; // 默认生成大小写数字混合

    let uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    let lowercase = uppercase.toLowerCase();
    let number = "0123456789";

    let chars = "";
    if (include & UPPERCASE) {
      chars += uppercase;
    }
    if (include & LOWERCASE) {
      chars += lowercase;
    }
    if (include & NUMBER) {
      chars += number;
    }

    let maxPos = chars.length;

    let str = "";
    for (let i = 0; i < len; i++) {
      str += chars.charAt(Math.floor(Math.random() * maxPos));
    }
    return str;
  };

  console.log(RandomString(8, 7)); // 随机8位大小写数字混合
  console.log(RandomString(32, 3)); // 随机32位大小写字符串

RandomString()函数参数位想生成的位数,以及生成的字符串包含那种类型

include:1(大写) 2(小写) 3(大小写) 4(数字) 5(大写及数字) 6(小写及数字) 7(大小写及数字)

chars:根据include的值判断想要生成字符串类型包含的全部字符

str:最终生成的字符串

使用&符的好处在于控制生成类型

你可能感兴趣的:(js实现生成随机密码字符串,可自定义包含类型与位数。)