You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中将指定字符串转换为UUID v4?

如何将无分隔符的UUID字符串转换为标准UUID v4格式?

问题场景

输入字符串:

const input = '83e54feeeb444c7484b3c7a81b5ba2fd';

期望输出的UUID v4格式:

83e54fee-eb44-4c74-84b3-c7a81b5ba2fd

当前已实现的方案(多次调用插入函数):

function insertString(str, index, value) {
    return str.substr(0, index) + value + str.substr(index);
}

function converToUUID(_uuid){
 _uuid = insertString(_uuid, 8, '-')
 _uuid = insertString(_uuid, 13, '-')
 _uuid = insertString(_uuid, 18, '-')
 _uuid = insertString(_uuid, 23, '-')
 
 return _uuid
}

console.log(converToUUID(input))

替代方案

方案1:正则表达式替换

通过正则分组匹配直接替换,一步完成格式转换:

function convertToUUID(uuid) {
  return uuid.replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/, '$1-$2-$3-$4-$5');
}

console.log(convertToUUID(input)); // 输出:83e54fee-eb44-4c74-84b3-c7a81b5ba2fd

正则将字符串按UUID的固定长度拆分为5个分组,再用分隔符连接各组。

方案2:字符串切片拼接

直接截取对应长度的子串,通过数组拼接成目标格式:

function convertToUUID(uuid) {
  return [
    uuid.slice(0, 8),
    uuid.slice(8, 12),
    uuid.slice(12, 16),
    uuid.slice(16, 20),
    uuid.slice(20)
  ].join('-');
}

console.log(convertToUUID(input)); // 输出:83e54fee-eb44-4c74-84b3-c7a81b5ba2fd

用slice截取各段后,通过数组的join方法一键添加分隔符。

方案3:模板字符串拼接

直接用模板字符串组合各截取片段,写法更简洁:

function convertToUUID(uuid) {
  return `${uuid.slice(0,8)}-${uuid.slice(8,12)}-${uuid.slice(12,16)}-${uuid.slice(16,20)}-${uuid.slice(20)}`;
}

console.log(convertToUUID(input)); // 输出:83e54fee-eb44-4c74-84b3-c7a81b5ba2fd

无需数组中转,直接通过模板字符串的语法拼接各部分。


内容的提问来源于stack exchange,提问作者retr0327

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:45:27