当前位置:首页 > JavaScript

js 实现uuid

2026-03-14 01:43:19JavaScript

在JavaScript中生成UUID(通用唯一标识符)可以通过多种方式实现,以下是几种常见的方法:

使用crypto.randomUUID()

现代浏览器支持crypto.randomUUID()方法,直接生成符合RFC 4122标准的UUID:

js 实现uuid

const uuid = crypto.randomUUID();
console.log(uuid); // 输出类似 "123e4567-e89b-12d3-a456-426614174000"

使用crypto.getRandomValues()

对于不支持randomUUID()的环境,可以通过crypto.getRandomValues()生成随机数并格式化:

function generateUUID() {
  return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  );
}
console.log(generateUUID()); // 输出类似 "7982fcfe-5721-4632-bede-6000885be57d"

使用第三方库

常见的库如uuid提供了更丰富的UUID生成支持:

js 实现uuid

npm install uuid

代码示例:

import { v4 as uuidv4 } from 'uuid';
const uuid = uuidv4();
console.log(uuid); // 输出类似 "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed"

传统方法(不推荐)

早期浏览器可能依赖时间戳和随机数生成,但安全性较低:

function legacyUUID() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    const r = Math.random() * 16 | 0;
    const v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}
console.log(legacyUUID()); // 输出类似 "e4b35252-4e60-4e83-a5e9-1a2b3c4d5e6f"

注意事项

  • 优先使用crypto.randomUUID()uuid库,确保安全性和兼容性。
  • 传统方法可能因随机数质量导致冲突风险,仅适用于非关键场景。

标签: jsuuid
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…