JavaScript 生成UUID的方法_js 生成uuid
文章目录
JavaScript 生成UUID的方法
【摘要】
JavaScript生成UUID的四种方法总结:
标准RFC4122版本4:使用正则替换模板字符串,随机生成符合版本4规范的36位UUID(含固定\"4\"和特定范围字符)。
数组构造法:通过预定义数组和固定位置设置,构建符合规范的UUID字符串。
分段组合法:用S4函数生成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
的高位固定为8
、9
、a
或b
,符合版本4规范
正则替换
/[xy]/g
匹配所有x
或y
的字符,通过回调函数动态替换为符合条件的值。
4. 替换逻辑详解
随机数生成
Math.random() * 16 | 0
生成0到15的随机整数,| 0
等效于取整。
条件处理
x
替换为随机值(r
直接转换)y
替换时强制高位为特定值:
(r & 0x3 | 0x8)
确保结果的高位为1000
(二进制),即8
到b
的十六进制值。
进制转换
v.toString(16)
将数值转为小写十六进制字符。
5. 版本4 UUID规范
- 第13字符固定为
4
(代码中直接写入模板)。 - 第17字符高位需为
8
、9
、a
或b
(通过y
的逻辑强制实现)。
6. 输出示例
运行结果示例:\"3b5f1a88-42d1-4a09-b8e7-12c3d456e789\"
,符合8-4-4-4-12的分段结构。
【知识扩展】