jsUUID生成规则
1. 字符集与基数
采用自定义字符集:
0W6FGX4Zabc3dA1UBCe5HuxIJK7EvwL2STMYfg8klmVnopDN9hijOPQRqrstyz。字符集长度为 62,这意味着生成的 UUID 会基于 62 进制
2. 基础生成逻辑
函数参数:函数接收一个可选参数
len,其默认值为 32,该参数用于指定 UUID 的长度。头部生成:函数会生成 9 位随机字符,这些字符是从自定义字符集中随机选取的。
中间部分生成(当长度≥32 时):会把当前时间的毫秒数转换为 16 进制字符串并添加到 UUID 中。
尾部补全:若生成的字符串长度未达到指定的
len,就会继续从自定义字符集中随机选取字符来补全。
3. 随机性与唯一性
随机性来源:主要依靠
Math.random()函数来获取随机数。唯一性保障:借助当前时间的毫秒数(转换为 16 进制)以及随机字符共同保证生成的 UUID 具有唯一性。
4. 应用场景
适用于生成短 ID,像 URL 短链接、临时性标识等场景。
由于其随机性和唯一性,也能在一般性的唯一标识需求中发挥作用。
5. 注意要点
生成的 ID 并非严格意义上的 UUID,它不遵循 RFC 4122 标准。
当需要更高的唯一性时,建议使用专业的 UUID 库,例如
uuid包。
示例生成结果
当长度为 32 时,可能生成类似
6e4dA1UBC5f15c9d41e5b7e7c8f9d32这样的字符串。当长度为 16 时,可能生成类似
GXu7EvwL2Sabc3dA这样的字符串。