我一直在使用这段代码:
function stringGen()
{
var text = " ";
var charset = "abcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < len; i++ )
text += charset.charAt(Math.floor(Math.random() * charset.length));
return text;
}
但到目前为止,它一直没有起作用。我做错了什么?
提前感谢您的帮助
答案 0 :(得分:19)
您错过了参数len
。
function stringGen(len) {
var text = "";
var charset = "abcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < len; i++)
text += charset.charAt(Math.floor(Math.random() * charset.length));
return text;
}
console.log(stringGen(3));
这会给你类似“a1z”的东西。
答案 1 :(得分:7)
漂亮的单行将是:
Math.random().toString(36).substr(2, length)
或者如果你需要一个超过10/11个字符的str:
function generateRandAlphaNumStr(len) {
var rdmString = "";
for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
return rdmString.substr(0, len);
}
答案 2 :(得分:2)
同样的选择:
var len = 20,
str = '';
while( len-- ) {
str += String.fromCharCode( 48 + ~~(Math.random() * 42) );
}
console.log( str );
答案 3 :(得分:0)
您的len变量未定义。将其作为参数传递,或将其设置为某种东西。
function stringGen(len)
{
var text = " ";
var charset = "abcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < len; i++ )
text += charset.charAt(Math.floor(Math.random() * charset.length));
return text;
}
alert(stringGen(5));