Javascript生成随机字符串/字符

时间:2016-08-07 21:24:19

标签: javascript string random character

我需要一些简单的代码,当生成唯一的16个数字必须是0-9个数字时发出警报

2 个答案:

答案 0 :(得分:1)

您可以创建一个对象来存储数字,大写,小写字符串;将引用对象属性名称的数组传递给rand,使用Array.prototype.reduce()连接成单个字符串。将60更改为累积字符串.length

function rand(filter, length, current) {
  current = current ? current : '';
  var types = {
    number: "0123456789",
    uppercase: "ABCDEFGHIJKLMNOPQRSTUVWXTZ",
    lowercase: "abcdefghiklmnopqrstuvwxyz"
  };
  var r = (filter[0] === "all" ? Object.keys(types) : filter).reduce((s, t) => {
    s += types[t];
    return s
  }, "")
  return length ? rand(filter, --length
  , r.charAt(Math.floor(Math.random() * r.length)) + current) : current;
}
alert(rand(["number"], 16));
alert(rand(["number", "uppercase"], 16));
alert(rand(["all"], 16));

答案 1 :(得分:0)

使用Math.random():

function rand() {
    n = Math.random()*1e17;
    return (n+"").substr(1,16);
}

基本上生成0到1之间的随机数,乘以1e17得到17位数,然后取最后16位数。这样做是因为如果您只取前16个随机数字,则第一个数字可能为0而不会转换为字符串(因为不保留整数上的前导0')。所以改为17,取回16。