Bagaimana untuk mencipta GUID (Pengecam Unik Global) dalam JavaScript? GUID/UUID hendaklah sekurang-kurangnya 32 aksara dan harus kekal dalam julat ASCII untuk mengelakkan masalah melepasinya.
Saya tidak pasti apakah rutin yang tersedia pada semua penyemak imbas, apakah "kerawak" penjana nombor rawak terbina dalam, bagaimana ia disemai, dsb.
[Diedit pada 5 Mac 2023 untuk mencerminkan amalan terbaik terkini untuk menjana UUID yang mematuhi RFC4122]
crypto.randomUUID()
is now standard on all modern browsers and JS runtimes. However, because new browser APIs are restricted to secure contexts, this method is only available to pages served locally (localhost
or127.0.0.1
) atau melalui HTTPS.Untuk pembaca yang berminat dengan versi UUID lain, menjana UUID pada platform lama atau dalam konteks tidak selamat, terdapat modul
uuid
ini diuji dan disokong dengan baik.Jika kaedah di atas gagal, terdapat juga kaedah ini (berdasarkan jawapan asal kepada soalan ini):
Nota: Penggunaan sebarang penjana UUID yang bergantung pada
TL;DR:🎜 penyelesaian berdasarkanMath.random()
amat tidak digalakkan (termasuk coretan yang dipaparkan dalam versi sebelumnya bagi jawapan ini) untuk sebab terbaik dijelaskan di siniMath.random()
is strongly discouraged (including snippets featured in previous versions of this answer) for reasons best explained here. TL;DR: solutions based onMath.random()
Math.random()
jangan. memberikan jaminan keunikan yang baik.🎜UUID (Universally Unique Identifier), juga dikenali sebagai GUID (Globally Unique Identifier), menurut RFC 4122 ialah pengecam yang direka untuk memberikan jaminan keunikan tertentu.
Walaupun mungkin untuk melaksanakan UUID yang mematuhi RFC dengan beberapa baris JavaScript (lihat, sebagai contoh, @jawapan broofa, di bawah) terdapat beberapa perangkap biasa:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
", dengan x ialah salah satu daripada [0-9, a-f] M ialah salah satu daripada [1-5] dan N ialah [8, 9, a , atau b]Math.random
)Oleh itu, pembangun menulis kod untuk persekitaran pengeluaran digalakkan untuk menggunakan pelaksanaan yang ketat dan diselenggara dengan baik seperti modul uuid.