正如标题所说:我想在 Crockford's base 32 中生成一个随机的六位数字符串在 JavaScript 中。
我目前使用以下方法生成一个随机的六位数数字:
function genRandNum() {
return Math.floor(Math.random() * 900000) + 100000;
}
但是 32 进制会更酷!
除了从字符数组中随机挑选六次来构建字符串之外,有人可以推荐一种有效的方法来做到这一点吗?
最佳答案
Number.toString(32)
将返回数字的 32 位表示形式。这不是 Crockford 的 32 位表示(它使用 0123456789abcdefghijklmonpqrstuv
而不是 Crockford 的 0123456789abcdefghjkmnpqrstvwxyz
),但它可以很容易地更改,因为数字是随机的:
var key = {
'i': 'w',
'l': 'x',
'o': 'y',
'u': 'z'
};
var randomInt = Math.floor(Math.random()*1e9);
alert(randomInt.toString(32).replace(/[ilou]/, function (a) {
return key[a];
}));
关于javascript - 生成一个以 32 为基数的随机六位数字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948570/