numeric string in JavaScript?

This question already has an answer here:

  • Generate random string/characters in JavaScript 53 answers

  • If you only want to allow specific characters, you could also do it like this:

    function randomString(length, chars) {
        var result = '';
        for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
        return result;
    }
    var rString = randomString(32, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
    

    Here's a jsfiddle to demonstrate: http://jsfiddle.net/wSQBx/

    Another way to do it could be to use a special string that tells the function what types of characters to use. You could do that like this:

    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.floor(Math.random() * mask.length)];
        return result;
    }
    
    console.log(randomString(16, 'aA'));
    console.log(randomString(32, '#aA'));
    console.log(randomString(64, '#A!'));
    

    Fiddle: http://jsfiddle.net/wSQBx/2/

    Alternatively, to use the base36 method as described below you could do something like this:

    function randomString(length) {
        return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1);
    }
    

    我刚刚认识到这是一个非常好的优雅解决方案:

    Math.random().toString(36).slice(2)
    

    Another variation of answer suggested by JAR.JAR.beans

    (Math.random()*1e32).toString(36)
    

    By changing multiplicator 1e32 you can change length of random string.

    链接地址: http://www.djcxy.com/p/16252.html

    上一篇: PHP函数生成v4 UUID

    下一篇: 数字字符串在JavaScript中?