当前位置:首页 > 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
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promise…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…