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

  • finalcall07

    finalcall07

    11 NİSAN 2008
  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007

İLGİLİ SORU / CEVAPLAR