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

4

我目前正在尝试弄清如何将字符串中每个单词的第一个字母大写(该单词中的所有其他字母都小写)。例如:"Coding Can Be Confusing"。

这是我目前编写的代码。我知道我肯定缺少代码,只是不确定接下来应该添加什么。我也不确定我所拥有的是否正确。如果您能提供帮助,那将不胜感激。

function titleCase(str) {
  var words = str.toLowerCase.split(' ');

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

  return words.join(' ');
}

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

2
你的代码能正常工作吗?它是否会抛出错误,产生不正确的输出...简而言之,问题出在哪里? - vesan
请注意上面的重复内容,注意您与相同示例具有完全相同的问题。 - Spencer Wieczorek
4个回答

3

You can use map() and substring() and do something like this

function titleCase(str) {
  return str.toLowerCase().split(' ').map(function(v) {
    return v.substring(0, 1).toUpperCase() + v.substring(1)
  }).join(' ');
}
document.write(titleCase("I'm a little tea pot"));


2

试试这段代码:

var str = "this is sample text";
console.log(toTitleCase(str));

function toTitleCase(str)
{
    return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}

JsFiddle


0

使用以下代码进行ucword操作

        function titleCase(str) {
            return (str + '')
                .replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g, function($1) {
                    return $1.toUpperCase();
                });
        }
    
        var data = titleCase("I'm a little tea pot");
        document.write(data);
    


0

这个怎么样?

var text = "I'm a little tea pot"

text = text.split(" ")
//["I'm", "a", "little", "tea", "pot"]

final = $.map(text, function(val,i){
 return val = val[0].toUpperCase() + val.slice(1,val.length)
})
// ["I'm", "A", "Little", "Tea", "Pot"]

final.join(" ")
// "I'm A Little Tea Pot"

所以函数应该是

function titleCase(str) {
    return text.split(" ").map(function(val,i){
        return val[0].toUpperCase() + val.slice(1,val.length)
    }).join(" ")
}

var text = "I'm a little tea pot"
console.log(titleCase(text))
//"I'm A Little Tea Pot"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接