如何生成随机数,该数字的长度必须为21,并在邮递员中以“ 01”为前缀

时间:2018-08-17 14:45:00

标签: javascript postman

我正在使用下面的代码生成一个随机数。结果输出的长度应为21,前缀以“ 01”开头

postman.setGlobalVariable('RandomOrderId', "01"+ Math.floor(Math.random() * 1234567890123456789));

但是,有时它会生成长度为20、19等的输出。如何确保它始终生成长度为21且前缀为“ 01”的随机数?

4 个答案:

答案 0 :(得分:1)

Math.random为您提供0到1之间的随机数,再乘以一百万就可以得到介于零到一百万之间的某个值。如果要允许前导数字,则可以将数字转换为字符串,并添加必要数量的前导零,如果可以的话。否则,您可以生成0到9之间的21个随机数,并将它们组合成一个随机的巨大数(也可以有前导零)。

代码可能看起来像这样:

var s = "01";
    for(var i = 0; i < 21; i++) {
        s = s + Math.floor(Math.random() * 10);
    }
    console.log(s);

答案 1 :(得分:0)

尝试注入此JS:

var len = 21;
parseInt((Math.random() * 20 + 1) * Math.pow(20,len-1), 20);

答案 2 :(得分:0)

使用以下内容

postman.setGlobalVariable('RandomOrderId', "01"+ Math.floor(1000000000000000000 + Math.random() * 1000000000000000000));

使用以下内容进行验证

function getRandomInt() {
  return ( "01" + Math.floor(1000000000000000000 + Math.random() * 1000000000000000000));
}

console.log(getRandomInt());
console.log(getRandomInt());
console.log(getRandomInt());
console.log(getRandomInt());
console.log(getRandomInt());

答案 3 :(得分:0)

您还可以在Postman中使用Lodash _.random()方法。设置范围的下限值和上限值,它将在这些值之间返回一个19位数字。 01前缀可以直接添加到全局值。

const lowerLimit = 1000000000000000000
const upperLimit = 9999999999999999999

pm.globals.set("randomNumber", `01${_.random(lowerLimit,upperLimit)}`)

只是一种不同的方式来获得与接受的答案相同的结果。