最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

兩行Javascript代碼生成UUID的方法

 更新時(shí)間:2020年06月16日 15:06:32   作者:lmjben  
這篇文章主要介紹了兩行Javascript代碼生成UUID的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

GUID全稱(chēng)為全局唯一標(biāo)識(shí)符,也稱(chēng)作 UUID,GUID是一種由算法生成的二進(jìn)制長(zhǎng)度為128位的數(shù)字標(biāo)識(shí)符。GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中的 x 是 0-9 或 a-f 范圍內(nèi)的一個(gè)32位十六進(jìn)制數(shù)。GUID 的總數(shù)達(dá)到了2^128(3.4×10^38)個(gè),所以隨機(jī)生成兩個(gè)相同GUID的可能性非常小,但并不為0。

發(fā)現(xiàn)一個(gè)簡(jiǎn)單的方法,可以在不依賴(lài)第三方庫(kù)的情況下,在 Javascript 應(yīng)用程序中生成 UUID。

function uuid() {
 var temp_url = URL.createObjectURL(new Blob());
 var uuid = temp_url.toString(); // blob:https://xxx.com/b250d159-e1b6-4a87-9002-885d90033be3
 URL.revokeObjectURL(temp_url);
 return uuid.substr(uuid.lastIndexOf("/") + 1);
}

在 Javascript 中可以用的 URL.createObjectURL 方法創(chuàng)建一個(gè)惟一的 URL,以表示傳遞給它的對(duì)象。為了讓這個(gè) URL 是唯一的, URL.createObjectURL 方法返回的 URL 會(huì)帶上一段 36 位長(zhǎng)的字符串,和 UUID 的長(zhǎng)度一致,通過(guò)這個(gè)原理,就可以模擬 UUID 了。

下面是這個(gè)方法生成的 UUID 的一些例子:

for (var i = 0; i < 10; ++i) {
 console.log(uuid());
}

// 執(zhí)行結(jié)果如下
// f6ca05c0-fad5-46fc-a237-a8e930e7cb49
// 6a88664e-51e1-48c3-a85e-7bf00467e9e6
// e6050f4c-e86d-4081-9376-099bfbef2c30
// bde3da3c-b318-4498-8a03-9a773afa84bd
// ba0fda03-f806-4c2f-b6f5-1e74a299e603
// 62b2edc3-b09f-4bf9-8dbf-c4d599479a29
// e70c0609-22ad-4493-abcc-0e3445291397
// 920255b2-1838-497d-bc33-56550842b378
// 45559c64-971c-4236-9cfc-706048b60e70
// 4bc4bbb9-1e90-432b-99e8-277b40af92cd

注意: URL.createObjectURL 的目的不是生成隨機(jī) UUID。 因此,上述生成 UUID 的方法可能會(huì)導(dǎo)致我尚未意識(shí)到的副作用。
其他方法

一、生成GUID的方法一

function guid() {
 function S4() {
 return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
 }
 return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

二、生成GUID的方法二

function guid() {
 return '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);
 });
}

三、生成GUID的方法三

function uuid() {
 var s = [];
 var hexDigits = "0123456789abcdef";
 for (var i = 0; i < 36; i++) {
  s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
 }
 s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
 s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
 s[8] = s[13] = s[18] = s[23] = "-";
 
 var uuid = s.join("");
 return uuid;
}

參考鏈接:Standalone UUID generator in Javascript

到此這篇關(guān)于兩行Javascript代碼生成UUID的方法的文章就介紹到這了,更多相關(guān)Javascript生成UUID內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Timezone類(lèi)常見(jiàn)問(wèn)題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Timezone類(lèi)常見(jiàn)問(wèn)題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java Timezone類(lèi)常見(jiàn)問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java中computeIfAbsent的功能和語(yǔ)法小結(jié)

    Java中computeIfAbsent的功能和語(yǔ)法小結(jié)

    Java8的computeIfAbsent方法簡(jiǎn)化了從Map中獲取值并處理默認(rèn)值的過(guò)程,減少了手動(dòng)null檢查的繁瑣,提高了代碼的簡(jiǎn)潔性和可讀性,本文就來(lái)具體了解一下computeIfAbsent的使用,感興趣的可以了解一下
    2025-10-10
  • Spring Boot Admin(監(jiān)控工具)的使用

    Spring Boot Admin(監(jiān)控工具)的使用

    今天我們將會(huì)講解一個(gè)優(yōu)秀的監(jiān)控工具Spring Boot Admin。 它采用圖形化的界面,讓我們的Spring Boot管理更加簡(jiǎn)單,需要的朋友可以參考下
    2020-02-02
  • java中ReentrantLock實(shí)現(xiàn)公平鎖和非公平鎖

    java中ReentrantLock實(shí)現(xiàn)公平鎖和非公平鎖

    在Java里,公平鎖和非公平鎖是多線程編程中用于同步的兩種鎖機(jī)制,它們的主要差異在于獲取鎖的順序規(guī)則,下面就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下
    2025-12-12
  • Spring MVC中基于自定義Editor的表單數(shù)據(jù)處理技巧分享

    Spring MVC中基于自定義Editor的表單數(shù)據(jù)處理技巧分享

    Spring MVC中基于自定義Editor的表單數(shù)據(jù)處理技巧。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12
  • Java?Map的compute方法舉例詳解

    Java?Map的compute方法舉例詳解

    Java中的Map是一種用于存儲(chǔ)鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),它提供了一系列的方法來(lái)操作和訪問(wèn)其中的元素,下面這篇文章主要給大家介紹了關(guān)于Java?Map的compute方法舉例詳解的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • spring?bean標(biāo)簽中的init-method和destroy-method詳解

    spring?bean標(biāo)簽中的init-method和destroy-method詳解

    這篇文章主要介紹了spring?bean標(biāo)簽中的init-method和destroy-method,在很多項(xiàng)目中,經(jīng)常在xml配置文件中看到init-method 或者 destroy-method ,因此整理收集下,方便以后參考和學(xué)習(xí),需要的朋友可以參考下
    2023-04-04
  • Java中Spring的創(chuàng)建和使用詳解

    Java中Spring的創(chuàng)建和使用詳解

    這篇文章主要介紹了Java中Spring的創(chuàng)建和使用詳解,Spring 是?個(gè)包含了眾多?具?法的 IoC 容器,既然是容器那么 它就具備兩個(gè)最基本的功能,將對(duì)象存儲(chǔ)到容器中,從容器中將對(duì)象取出來(lái),需要的朋友可以參考下
    2023-08-08
  • 詳解spring多線程與定時(shí)任務(wù)

    詳解spring多線程與定時(shí)任務(wù)

    本篇文章主要介紹了spring多線程與定時(shí)任務(wù),詳細(xì)的介紹了spring多線程任務(wù)和spring定時(shí)任務(wù),有興趣的可以了解一下。
    2017-04-04
  • 關(guān)于bigDecimal類(lèi)的精度保留方法

    關(guān)于bigDecimal類(lèi)的精度保留方法

    這篇文章主要介紹了關(guān)于bigDecimal類(lèi)的精度保留方法,計(jì)算機(jī)存儲(chǔ)的浮點(diǎn)數(shù)受存儲(chǔ)bit位數(shù)影響,只能保證一定范圍內(nèi)精準(zhǔn),超過(guò)bit范圍的只能取近似值,Java使用java.math.BigDecimal專(zhuān)門(mén)處理小數(shù)精度,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

恭城| 宜城市| 广河县| 稻城县| 龙陵县| 平谷区| 共和县| 弋阳县| 碌曲县| 汝阳县| 平泉县| 胶州市| 普格县| 介休市| 孟津县| 上思县| 罗城| 海阳市| 许昌市| 团风县| 鄂尔多斯市| 盐亭县| 湖州市| 浦东新区| 龙川县| 烟台市| 喜德县| 盱眙县| 赤壁市| 昭觉县| 万荣县| 常德市| 达孜县| 丁青县| 分宜县| 濮阳县| 楚雄市| 霍城县| 芦山县| 张家界市| 莱西市|