如何在Javascript中生成随机的字母和数字字符串?

时间:2013-04-19 14:13:45

标签: javascript string random

我一直在使用这段代码:

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;
}

但到目前为止,它一直没有起作用。我做错了什么?

提前感谢您的帮助

4 个答案:

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

http://jsfiddle.net/rg7Z3/