0

我有一个系统需要生成随机数作为参考号。这是我在 JavaScript 中使用的:

        function random() {
            return Math.floor(Math.random() * 100000000);
        }

这工作正常,但我需要随机数为 8 个字符长。此代码生成 8 个字符的长数字,但在某些情况下它只生成 7 位数字。

而且,“随机数”是否可能是字母数字?谢谢

4

3 回答 3

3

尝试这个

function randomString(length, chars) {
  var mask = '';
  if (chars.indexOf('a') > -1) mask += 'abcdefghijklmnopqrstuvwxyz';
  if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  if (chars.indexOf('#') > -1) mask += '0123456789';
  if (chars.indexOf('!') > -1) mask += '~`!@#$%^&*()_+-={}[]:";\'<>?,./|\\';
  var result = '';
  for (var i = length; i > 0; --i) 
     result += mask[Math.round(Math.random() * (mask.length - 1))];
  return result;
}

document.write(randomString(8, '#aA'));

演示

于 2013-05-31T06:51:58.777 回答
1

尝试这个:

function randomString()
{
var chars ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = '';
for (var i = 8; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
var radomNumber = randomString();
于 2013-05-31T06:59:31.153 回答
0
function makeid()
{
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for( var i=0; i < 8; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}
于 2013-05-31T06:49:03.387 回答