2517


Windows系の開発でよく出てくるGUIDのようなランダムな文字列を生成したいです。

一定の長さ以上のランダムな文字列を生成するだけなので自作できると思いますが、jQueryなどの普及しているライブラリで提供されている関数、または標準的な生成方法があれば、そちらに倣いたいと思います。


CC BY-SA 3.0
2014-12-24T22:54:58.410
2512
2014-12-25T01:38:55.087
2014-12-24T23:08:06.493
3925
3925
question
javascript jquery
JavaScriptで GUID / UUID（ランダムな文字列）を生成するには


本家に同様の質問がありました。

<https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript>

[code]

    ~~var guid = (function() {
          function s4() {
            return Math.floor((1 + Math.random()) * 0x10000)
                       .toString(16)
                       .substring(1);
          }
          return function() {
            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                   s4() + '-' + s4() + s4() + s4();
          };
        })();~~
[/code]

[追記]えいやっで上からとってきたコードが間違い（IDの仕様的に）との指摘から、取り消し線をいれました。


CC BY-SA 3.0
2014-12-24T22:58:58.027
2513
2014-12-25T01:38:55.087
2017-05-23T12:38:55.250
-1
845
2512
answer


UUIDの生成には、乱数を使う場合の仕様 [RFC4122](http://www.ietf.org/rfc/rfc4122.txt)
がありますので、できればそれに従うようにしましょう。

コードなら、こんな感じ。 ([gistより引用](https://gist.github.com/jcxplorer/823878))

[code]

    function uuid() {
      var uuid = "", i, random;
      for (i = 0; i < 32; i++) {
        random = Math.random() * 16 | 0;
    
        if (i == 8 || i == 12 || i == 16 || i == 20) {
          uuid += "-"
        }
        uuid += (i == 12 ? 4 : (i == 16 ? (random & 3 | 8) : random)).toString(16);
      }
      return uuid;
    }
    
[/code]


CC BY-SA 3.0
2014-12-25T00:57:42.743
2517
2014-12-25T00:57:42.743
208
2512
answer