Javascript-从一组指定值生成指定长度的随机数
我想从一组指定的字符中生成一个长度为32个字符的随机数 例如:Javascript-从一组指定值生成指定长度的随机数,javascript,jquery,Javascript,Jquery,我想从一组指定的字符中生成一个长度为32个字符的随机数 例如: var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ"; var string_length = 32; 然后使用指定的字符返回长度为32的随机数 像这样的 var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ"; var string_length = 32; var myrnd = [], pos; // loop as long a
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 32;
然后使用指定的字符返回长度为32的随机数 像这样的
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 32;
var myrnd = [], pos;
// loop as long as string_length is > 0
while (string_length--) {
// get a random number between 0 and chars.length - see e.g. http://www.shawnolson.net/a/789/make-javascript-mathrandom-useful.html
pos = Math.floor(Math.random() * chars.length);
// add the character from the base string to the array
myrnd.push(chars.substr(pos, 1));
}
// join the array using '' as the separator, which gives us back a string
myrnd.join(''); // e.g "6DMIG9SP1KDEFB4JK5KWMNSI3UMQSSNT"
查看jsfiddle。我对其进行了修改,以便您可以在结果增长时看到进度:
var chars=“0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ”//潜在角色库
变量字符串长度=32;//期望的结果长度
var num_chars=chars.length;//池中的字符总数
变量结果=“”;//用于存储结果的容器
while(string_length--){//运行循环的持续时间等于结果的长度
//对于每次迭代,获取一个从0到迭代大小的随机数
//使用的字符数,使用该数字获取索引
//,并将其添加到结果的末尾
结果+=字符[数学地板(数学随机()*num_字符)];
}
$('body')。追加(结果+'
);//这只是将结果附加到“body”中
//如果您使用的是jQuery
像这样的东西
查看jsfiddle。我对其进行了修改,以便您可以在结果增长时看到进度:
var chars=“0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ”//潜在角色库
变量字符串长度=32;//期望的结果长度
var num_chars=chars.length;//池中的字符总数
变量结果=“”;//用于存储结果的容器
while(string_length--){//运行循环的持续时间等于结果的长度
//对于每次迭代,获取一个从0到迭代大小的随机数
//使用的字符数,使用该数字获取索引
//,并将其添加到结果的末尾
结果+=字符[数学地板(数学随机()*num_字符)];
}
$('body')。追加(结果+'
);//这只是将结果附加到“body”中
//如果您使用的是jQuery
这里有一个简单的解决方案,应该很容易理解
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 32;
var result = "";
for(var i=0; i<string_length; i++){
var randomPos = Math.floor( Math.random() * chars.length );
result += chars.substr(randomPos, 1);
}
var chars=“0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ”;
变量字符串长度=32;
var结果=”;
对于(var i=0;i,这里有一个简单的解决方案,应该很容易理解
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 32;
var result = "";
for(var i=0; i<string_length; i++){
var randomPos = Math.floor( Math.random() * chars.length );
result += chars.substr(randomPos, 1);
}
var chars=“0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ”;
变量字符串长度=32;
var结果=”;
对于(var i=0;i可能会使它更灵活一些
您可能希望返回为数组,
如果你要对它做大整数运算
function charsRandom(len, chars){
chars= chars || "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
len= len || 32;
var cr= [], L= chars.length;
while(len--) cr[cr.length]= chars.charAt(Math.floor(Math.random()*L));
return cr.join(''); // or return the array cr
}
警报(charsRandom())可能会使它更灵活一些
您可能希望返回为数组,
如果你要对它做大整数运算
function charsRandom(len, chars){
chars= chars || "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
len= len || 32;
var cr= [], L= chars.length;
while(len--) cr[cr.length]= chars.charAt(Math.floor(Math.random()*L));
return cr.join(''); // or return the array cr
}
警报(charsRandom())从什么时候开始数字可以包含字母?:)这听起来像是家庭作业。你尝试了什么?你有什么困难?循环?随机性?展示你尝试了什么。顺便说一句,jQuery根本不会参与其中…顺便说一下,你的字符字符串中有两个t:-P@Nick:很明显,这是一个base-36数字。我只希望我是个极客,能知道合适的前缀是什么所以我可以说“blahblahdecimal”。:-)(谷歌说“triántaéxidecimal”)@Andy:请告诉我你碰巧看到了。你没有…检查。;-)从什么时候起,数字可以包含字母?:)这听起来像是家庭作业。你试过什么?你有什么困难?环路?随机性?展示你的尝试。顺便说一句,jQuery根本不会参与其中……顺便说一下,您的chars
字符串中有两个Ts:-P@Nick:很明显,这是一个基数为36的数字。我只希望我是个极客,知道36的前缀是什么,这样我就可以说“blahblahdecimal”。-)(谷歌说“triántaéxidecimal”)@Andy:请告诉我你碰巧看到了。你没有…检查。;-)这显然是个初学者。如果你给出了一个完整的答案,你至少应该在你正在做的事情上做一些评论,因为如果你还在学习基础知识,那么像在while
条件下倒计时长度或者使用数组并加入数组等事情都不容易理解。这显然是一个初学者。如果你给出了一个完整的答案,你至少应该在你正在做的事情中给出一些注释,因为如果你还在做基础工作,那么像在while
条件下倒计时长度或者使用数组并加入数组等事情都不容易理解。