You need to enable JavaScript to run this app. JavaScript如何实现字符串所有单词首字母大写转换?
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何实现字符串所有单词首字母大写转换?

JavaScript 全单词首字母大写实现

原有实现的逻辑缺陷

你写的str.charAt(0).toUpperCase() + str.slice(1)仅对整个字符串的全局第一个字符做大写转换,剩余字符直接保留原始状态拼接,因此只能实现句首大写的效果,无法对每个空格分隔的单词单独处理首字母。

具体实现方案

核心逻辑:先拆分空格分隔的单个单词,对每个单词单独做首字母大写处理后再重新拼接,按需处理原字符串中的多余标点。

方案1:数组遍历实现(可读性强,支持自定义拓展规则)

let str = "my city is beautiful.";
// 剔除多余标点,如需保留原标点可删除这行代码
const noPunctuationStr = str.replace(/[^\w\s]/g, '');
const result = noPunctuationStr.split(' ')
  .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
  .join(' ');

逻辑说明:

  • 正则/[^\w\s]/g匹配所有非字母、非空格字符(比如案例末尾的句号),替换为空字符串以匹配本次需求的无标点输出
  • 遍历单词时同步把剩余字符统一转小写,避免原字符串的大写残留导致输出不符合预期
  • 最终输出直接得到预期的My City Is Beautiful

方案2:正则匹配实现(代码精简)

let str = "my city is beautiful.";
// 匹配所有单词首字母转大写,再剔除多余标点(无需去标点可删除后半段替换逻辑)
const result = str.replace(/\b\w/g, char => char.toUpperCase()).replace(/[^\w\s]/g, '');

逻辑说明:

  • 正则/\b\w/g会全局匹配所有单词边界后的第一个字符(也就是每个单词的首字母),直接替换为大写即可完成核心转换
  • 不需要处理标点的场景下,直接去掉最后的replace逻辑即可,非首字母位置的标点会自动保留
    内容的提问来源于stack exchange,提问作者teatzr
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 07:24:02