正如标题所说:我想在JavaScript中用Crockford的base 32生成一个随机的六位数字符串。
我目前使用以下方法生成一个随机的六位数:
function genRandNum() {
return Math.floor(Math.random() * 900000) + 100000;
}
但是32号基地会更酷!
除了从字符数组中随机挑选六次以构建字符串之外,还有人可以推荐一种有效的方法吗?
答案 0 :(得分:2)
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];
}));