SORU
19 EYLÜL 2008, Cuma


JavaScript GUID / UUID oluşturmak?

Genel benzersiz JavaScript tanımlayıcılar oluşturmak için çalışıyorum. Rutinleri "" ve yerleşik rasgele sayı üreteci, vb . seribaşı rasgele tüm tarayıcılar, ne kadar kullanılabilir emin değilim

GUID / UUID en az 32 karakter olmalı ve etraflarında geçen zaman ASCII aralığında sorun önlemek için kalmalı.

CEVAP
22 Ocak 2010, Cuma


Rfc4122 sürüm 4 uyumlu bir çözüm için, bir-liner(ish) bu çözüm en kompakt gelirim.:

'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
    return v.toString(16);
});

E. g:

>>> 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);});
"3bce4931-6c75-41ab-afe0-2ec108a30860"

[Güncelleme, 2015-06-02: UUID teklik ağır alttaki rasgele sayı (RNG) jeneratör dayanır unutmayın. Çözüm yukarıda için kısaltma Math.random() kullanır, ancak Math.random()değilgarantili yüksek kalitede bir bölgede de yapalım. Bakın Adam Hyland excellent writeup on Math.random() ayrıntılar için. Yüksek kalite bölgede de yapalım varsa API.] kullanan daha sağlam bir çözüm için, node-uuid.jsgibi bir şey düşünün[Yasal Uyarı: Ben yazar],

[Güncelleme, 2015-08-26: Yan not olarak, gist Bu kaç Kimlikleri çarpışma belirli bir olasılık ulaşmadan oluşturulabilir belirleme. 3 ile örneğin.26x1015sürüm 4 RFC4122 olacak biçimde bir 1-in-a-milyon çarpışma olasılığı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • natescamp

    natescamp

    30 NİSAN 2009
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010

İLGİLİ SORU / CEVAPLAR