JavaScript で GUID (Globally Unique Identifier) を作成するにはどうすればよいですか? GUID/UUID は少なくとも 32 文字の長(zhǎng)さで、渡す際のトラブルを避けるために ASCII 範(fàn)囲內(nèi)に収める必要があります。
すべてのブラウザでどのようなルーチンが使用できるのか、組み込みの亂數(shù)ジェネレーターの「ランダム性」とは何か、シード方法などはわかりません。
[RFC4122 準(zhǔn)拠の UUID を生成するための最新のベスト プラクティスを反映するために 2023 年 3 月 5 日に編集]
crypto.randomUUID()
は、すべての最新のブラウザーと JS ランタイムで標(biāo)準(zhǔn)になりました。ただし、新しいブラウザー API は安全なコンテキストに制限されているため、このメソッドは、ローカル (localhost
または 127.0.0.1
) または HTTPS.
他の UUID バージョン、レガシー プラットフォームまたは安全でないコンテキストでの UUID の生成に興味のある読者のために、uuid モジュール
があります。これは十分にテストされ、サポートされています。
Math.random() に依存する any UUID ジェネレーターの使用は強(qiáng)く推奨されません
(この回答の以前のバージョンで紹介されていたスニペットを含む) ) 理由はここで最もよく説明されています. TL;DR: Math.random() に基づくソリューションは、良好な一意性の保証を提供しません。
UUID (Universally Unique Identifier) は、RFC 4122 によれば、GUID (Globally Unique Identifier) とも呼ばれ、特定の一意性を保証するために設(shè)計(jì)された識(shí)別子です。
數(shù)行の JavaScript で RFC 準(zhǔn)拠の UUID を?qū)g裝することは可能ですが (たとえば、下記の @broofa の回答 を參照)、いくつかの一般的な落とし穴があります。
" の形式である必要があります。x は [0-9, a-f] のいずれかです)
Mは [1-5] のいずれかであり、N は [8、9、a、または b] です。
など)