使用javascript生成唯一的随机字母数字

时间:2014-05-22 05:11:45

标签: javascript random

代码:

function alphanumeric()

{

var randomnum=Math.random().toString(36).substr(2,8);

document.getElementbyId("textBoxId").value = randomnum;

}

每当我调用alphanumeric()函数时,这将生成字母数字随机字符串,并在文本框中显示如... v3ta4t8l,zshqoc2u,9pey71rb ...哪个工作正常.. 根据我的要求,我只需要允许使用唯一的字母数字。你能帮我解决下面的问题吗,

1.它只生成独特的字母数字吗?

2.这会产生多少字母数字?

3.是否可以只允许使用唯一的字母数字?

4.我可以在数据库中使用主键存储唯一的字母数字,在我的情况下已经有一个主键,因此我将尝试使用java脚本实现...

2 个答案:

答案 0 :(得分:0)

这里只会返回独特的字母数字

function alphanumeric_unique() {
    return Math.random().toString(36).split('').filter( function(value, index, self) { 
        return self.indexOf(value) === index;
    }).join('').substr(2,8);
}

FIDDLE

将字符串拆分为一个字符数组,然后使用Array.filter()过滤掉数组中已有的任何字符,只获取每个字符的一个实例,然后最后将字符连接回字符串,并运行substr(2, 8)以获得与问题相同的长度字符串,从第二个字符开始,总共有八个字符。

答案 1 :(得分:0)

 function IDGenerate() {
        var text = "";
        var hdntxt = "";
        var captchatext = "";
        var possible = "ABCDEFGHIkLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        for (var i = 0; i < 7; i++) {
            text += possible.charAt(Math.floor(Math.random() * possible.length));         
        }

        document.getElementById("txtboxID").value = text;
        return false;
    }