在基数32中生成一个随机的六位数字符串?

时间:2011-10-30 23:08:17

标签: javascript

正如标题所说:我想在JavaScript中用Crockford的base 32生成一个随机的六位数字符串。

我目前使用以下方法生成一个随机的六位数:

function genRandNum() {
    return Math.floor(Math.random() * 900000) + 100000;
}

但是32号基地会更酷!

除了从字符数组中随机挑选六次以构建字符串之外,还有人可以推荐一种有效的方法吗?

1 个答案:

答案 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]; 
}));