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

如何用JavaScript将字符串转为标题大小写并设置例外词

实现带例外单词的JavaScript标题大小写转换

要实现你需要的效果,核心思路是先统一处理字符串的大小写,再针对首词和例外单词做特殊逻辑,具体步骤和代码如下:

步骤说明

  • 定义需要保留小写的例外单词列表(比如of、the)
  • 将整个字符串转为全小写,避免原字符串大小写混乱的干扰
  • 分割字符串为单词数组,逐个处理每个单词:
    • 第一个单词强制转为标题大小写(首字母大写,其余小写)
    • 非首单词如果在例外列表中,保持小写;否则转为标题大小写

代码实现

function toTitleCase(str) {
  // 定义需要保持小写的例外单词
  const lowerCaseWords = new Set(['of', 'the']);
  // 先转全小写,再按空格分割成单词数组(处理多连续空格)
  const words = str.toLowerCase().split(/\s+/);
  
  return words.map((word, index) => {
    if (index === 0) {
      // 首词强制转标题大小写
      return word.charAt(0).toUpperCase() + word.slice(1);
    }
    // 非首词:在例外列表则保持小写,否则转标题大小写
    return lowerCaseWords.has(word) ? word : word.charAt(0).toUpperCase() + word.slice(1);
  }).join(' ');
}

测试示例

console.log(toTitleCase("THE university Of Maastricht"));
// 输出:The University of Maastricht

console.log(toTitleCase("The queen Of The nile"));
// 输出:The Queen of the Nile

补充说明

  • 使用Set存储例外单词是为了更快的查找速度,后续需要扩展例外词(比如and、or),直接往集合里添加即可
  • 如果要支持带连字符的单词(比如mother-in-law),可以单独写一个单词大写函数:
    function capitalizeWord(word) {
      return word.split('-').map(part => part.charAt(0).toUpperCase() + part.slice(1)).join('-');
    }
    
    之后替换原代码中的标题大小写逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:30:51