使用 JavaScript 生成随机字符串

用途:如 Oauth 认证等需要的等长随机字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 * By James from http://www.xinotes.org/notes/note/515/
 */

function randomString(length) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
   
    if (! length) {
        length = Math.floor(Math.random() * chars.length);
    }
   
    var str = '';
    for (var i = 0; i < length; i++) {
        str += chars[Math.floor(Math.random() * chars.length)];
    }
    return str;
}

/* examples */

// generate a random string of random length
randomString();

// generate a random string of length 8
randomString(8);

JavaScript中字符串连接性能

看到很多书或文章中都有说在JavaScript中进行字符串连接时最好使用Array的join而不是字符串的“+”操作。因为,join的性能更好,速度更快,可我使用以下代码测试时却得到相反的结果。

Demo页面
继续阅读“JavaScript中字符串连接性能”