> 技术文档 > JavaScript 生成UUID的方法_js 生成uuid

JavaScript 生成UUID的方法_js 生成uuid


文章目录

  • JavaScript 生成UUID的方法
      • 1. 代码
      • 2. 代码功能解析
      • 3. 代码结构分解
      • 4. 替换逻辑详解
      • 5. 版本4 UUID规范
      • 6. 输出示例
  • JS生成uuid的四种方法

JavaScript 生成UUID的方法

【摘要】

JavaScript生成UUID的四种方法总结:

  1. 标准RFC4122版本4:使用正则替换模板字符串,随机生成符合版本4规范的36位UUID(含固定\"4\"和特定范围字符)。

  2. 数组构造法:通过预定义数组和固定位置设置,构建符合规范的UUID字符串。

  3. 分段组合法:用S4函数生成4位十六进制片段,拼接成标准格式。

  4. 灵活定制法:可指定长度和基数,支持标准UUID或自定义ID生成。

所有方法均通过Math.random()获取随机值,并转换为十六进制,其中方法1、2、4严格遵循RFC4122版本4规范(包含固定位和特定字符范围)。方法3简化实现,方法4提供最大灵活性。


JavaScript生成UUID,下面采用 标准RFC4122版本4 方法进行讲解。

1. 代码

function generateUUID() {  return \'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\'.replace(/[xy]/g, function(c) {  const r = Math.random() * 16 | 0, v = c === \'x\' ? r : (r & 0x3 | 0x8); return v.toString(16); });}

2. 代码功能解析

该代码是一个生成UUID(通用唯一标识符)的JavaScript函数,遵循RFC4122版本4的标准格式(如123e4567-e89b-12d3-a456-426614174000)。


3. 代码结构分解

模板字符串
\'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\'定义了UUID的格式:

  • x代表随机生成的十六进制数字
  • 4固定为UUID版本号
  • y的高位固定为89ab,符合版本4规范

正则替换
/[xy]/g匹配所有xy的字符,通过回调函数动态替换为符合条件的值。


4. 替换逻辑详解

随机数生成
Math.random() * 16 | 0生成0到15的随机整数,| 0等效于取整。

条件处理

  • x替换为随机值(r直接转换)
  • y替换时强制高位为特定值:
    (r & 0x3 | 0x8)确保结果的高位为1000(二进制),即8b的十六进制值。

进制转换
v.toString(16)将数值转为小写十六进制字符。


5. 版本4 UUID规范

  • 第13字符固定为4(代码中直接写入模板)。
  • 第17字符高位需为89ab(通过y的逻辑强制实现)。

6. 输出示例

运行结果示例:\"3b5f1a88-42d1-4a09-b8e7-12c3d456e789\",符合8-4-4-4-12的分段结构。


【知识扩展】