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

16 浏览
0 Comments

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

我一直在使用这段代码:

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
0 Comments

原因:问题的提出者想要在Javascript中生成一个随机的字母和数字的字符串。

解决方法:问题的提出者给出了一个解决方法,使用了一个while循环和Math.random()函数来生成随机字符。具体代码如下:

var len = 20,
    str = '';
while( len-- ) {
    str += String.fromCharCode( 48 + ~~(Math.random() * 42) );
}
console.log( str );

这段代码通过循环生成了长度为20的随机字符串,每个字符的ASCII码值在48到89之间。最后将生成的字符串打印到控制台。

0
0 Comments

从上面的内容可以看出,这个问题的出现原因是提问者想要在Javascript中生成一个随机的字母和数字的字符串。为了解决这个问题,有几种方法可以使用。

第一种方法是使用一行代码来生成随机字符串。代码如下:

Math.random().toString(36).substr(2, length)

这行代码会生成一个随机的字符串,其中包含字母和数字。这个字符串的长度由变量`length`指定。

第二种方法是使用一个函数来生成随机字符串。代码如下:

function generateRandAlphaNumStr(len) {
  var rdmString = "";
  for( ; rdmString.length < len; rdmString  += Math.random().toString(36).substr(2));
  return  rdmString.substr(0, len);
}

这个函数会生成一个指定长度的随机字符串。函数内部使用一个循环来不断生成随机字符串的一部分,直到达到指定的长度。然后返回生成的随机字符串。

在这些方法中,随机字符串的最大长度是11个字符。有时候,由于随机数的生成,可能会得到10个字符的字符串。为了解决这个问题,可以将代码稍作修改,使其支持更长的长度。

如果你追求简洁性,可以将`var rdmString = ""`放入`for`循环的第一部分。

另外,也可以使用`slice()`代替`substr()`来截取字符串。例如:

Math.random().toString(34).slice(2);

通过以上方法,就可以在Javascript中生成一个随机的字母和数字的字符串。

0
0 Comments

原因:代码中缺少了参数"len",导致无法定义所需字符串的长度。

解决方法:在代码中添加参数"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"的随机字符串。

另外,这个解决方法看起来比我的更正确,因为它允许你定义所需字符串的长度。

0