这是一种在 Javascript 中生成UUID的简便方法(无外部依赖项)。
// Author: Abhishek Dutta, 12 June 2020
// License: CC0 (https://creativecommons.org/choose/zero/)
function uuid() {
var temp_url = URL.createObjectURL(new Blob());
var uuid = temp_url.toString();
URL.revokeObjectURL(temp_url);
return uuid.substr(uuid.lastIndexOf('/') + 1); // remove prefix (e.g. blob:null/, blob:www.test.com/, ...)
}
URL.createObjectURL()
静态方法会创建一个唯一的URL,以表示作为参数传递给它的对象。该uuid()
方法使用此属性URL.createObjectURL()
来在空对象上生成唯一的URL(这是我到目前为止测试过的所有浏览器中的随机UUID)。以下是此方法生成的一些示例UUID:
for(var i=0; i<10; ++i) { console.log(uuid()); }
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()
目标不是生成随机UUID。因此,上述生成UUID的方法可能会导致我尚未意识到的副作用。
为什么可以这样做,是因为blob URL生成UUID是规范的一部分。
原文地址:
https://abhishekdutta.org/blog/standalone_uuid_generator_in_javascript.html