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

CamelCase转换为Title Case时首字母处理失效问题咨询

JavaScript实现指定规则的Title Case转换

最终可用代码

function convertToTargetTitle(str) {
  return str
    // 拆分驼峰:小写字母后跟大写字母的位置中间加空格
    .replace(/([a-z])([A-Z])/g, '$1 $2')
    // 拆分字母与数字的边界,中间加空格
    .replace(/([a-zA-Z])(\d)/g, '$1 $2')
    .replace(/(\d)([a-zA-Z])/g, '$1 $2')
    // 统一连字符格式,确保连字符前后各有一个空格
    .replace(/\s*-\s*/g, ' - ')
    // 所有单词首字母大写
    .replace(/\b([a-z])/g, (match) => match.toUpperCase())
    // 合并多余空格并去除首尾空格
    .replace(/\s+/g, ' ')
    .trim();
}

测试验证

你给出的两个测试用例执行效果如下:

  • 输入 memberships 1 - contactGroupMembership - contactGroupId,输出 Memberships 1 - Contact Group Membership - Contact Group Id
  • 输入 memberships1-contactGroupMembership-contactGroupId,输出 Memberships 1 - Contact Group Membership - Contact Group Id

原代码问题说明

你之前的实现只完成了驼峰拆分加空格的逻辑,缺少三个核心处理步骤:

  1. 没有处理字母和数字相邻的拆分场景
  2. 没有统一连字符的前后空格格式
  3. 没有补充单词首字母大写的逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:42:01