如何使用 JavaScript 将字符串中每个单词的首字母大写?

新手上路,请多包涵

我正在尝试编写一个函数,将字符串中每个单词的首字母大写(将字符串转换为标题大小写)。

例如,当输入是 "I'm a little tea pot" 时,我希望 "I'm A Little Tea Pot" 是输出。但是,该函数返回 "i'm a little tea pot"

这是我的代码:

function titleCase(str) {
  var splitStr = str.toLowerCase().split(" ");

  for (var i = 0; i < splitStr.length; i++) {
    if (splitStr.length[i] < splitStr.length) {
      splitStr[i].charAt(0).toUpperCase();
    }

    str = splitStr.join(" ");
  }

  return str;
}

console.log(titleCase("I'm a little tea pot"));

原文由 slurrr 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 808
2 个回答

您没有再次将更改分配给数组,因此您的所有努力都是徒劳的。尝试这个:

 function titleCase(str) {
 var splitStr = str.toLowerCase().split(' ');
 for (var i = 0; i < splitStr.length; i++) {
 // You do not need to check if i is larger than splitStr length, as your for does that for you
 // Assign it back to the array
 splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);
 }
 // Directly return the joined string
 return splitStr.join(' ');
 }

 document.write(titleCase("I'm a little tea pot"));

原文由 somethinghere 发布,翻译遵循 CC BY-SA 3.0 许可协议

您正在使复杂成为一件非常容易的事情。你可以在你的 CSS 中添加这个:

 .capitalize {
    text-transform: capitalize;
}

在 JavaScript 中,您可以将类添加到元素

 document.getElementById("element").className = "capitalize";

原文由 Marcos Pérez Gude 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题