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

如何将camelCase转换为MACRO_CASE?含JavaScript实现方法咨询

将camelCase转换为MACRO_CASE的通用方法及JavaScript实现

通用转换方法

camelCase转MACRO_CASE的核心是拆分驼峰结构并转为大写下划线分隔格式,通用步骤如下:

  • 定位驼峰分界点:识别字符串中除首字符外的所有大写字母,这些位置是不同单词的分界
  • 插入分隔符:在每个分界点的大写字母前添加下划线
  • 统一大小写:将整个字符串转换为大写
  • 特殊场景处理:
    • 若字符串首字符为大写(如UserName),直接转为大写即可,无需额外添加下划线
    • 若存在连续大写(如HTTPRequest),仅在连续大写序列的后一个非连续大写字母前添加下划线(最终转为HTTP_REQUEST)

JavaScript实现方案

正则表达式方案(简洁高效)

利用正则快速匹配驼峰分界点,一步完成替换与转大写:

function camelToMacro(str) {
  return str
    // 在小写/数字后的大写字母前插入下划线
    .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
    // 处理首字符为大写的情况
    .replace(/^([A-Z])/, '_$1')
    // 转大写并移除可能的开头下划线
    .toUpperCase().replace(/^_/, '');
}

测试用例

console.log(camelToMacro('userName'));          // USER_NAME
console.log(camelToMacro('UserName'));          // USER_NAME
console.log(camelToMacro('HTTPRequest'));       // HTTP_REQUEST
console.log(camelToMacro('camelCase123Test'));  // CAMEL_CASE123_TEST

手动遍历方案(适合理解原理)

通过逐字符遍历实现转换,逻辑更直观,便于自定义扩展:

function camelToMacroManual(str) {
  let macroStr = '';
  for (let i = 0; i < str.length; i++) {
    const char = str[i];
    // 非首字符的大写字母前添加下划线
    if (char === char.toUpperCase() && i !== 0) {
      macroStr += '_';
    }
    // 统一转为大写
    macroStr += char.toUpperCase();
  }
  return macroStr;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:13:09