如果字符串有不同的情况,如何将字符串中每个单词的首字母大写成大写?

时间:2015-12-01 18:59:54

标签: javascript

var string = "deceMber iS Here" 

我尝试了这个但是我收到一个错误,说这不是一个功能。

string.split(" ").toUpperCase()

我希望以这种方式输出"December, Is, Here"

编辑:这个问题不重复。我做了很多搜索,提供的链接不符合我的需要。这是非常具体的问题。

3 个答案:

答案 0 :(得分:0)

当你调用string.split(" ")时,结果是一个由空格分割的子串数组。必须在字符串上调用toUppercase(),而不是数组。这就是您收到错误的原因,说明toUppercase()不是函数。

为了把每个分裂子串中的第一个字母大写,我会看到Sehab的建议:How do I make the first letter of a string uppercase in JavaScript?

答案 1 :(得分:0)

使用string.split(" ").toUpperCase(),您正在做的是将字符串拆分为数组(['deceMber'],['iS'],['Here'])并尝试toUpperCase()。数组没有此方法,因此出现错误消息。

您需要遍历此数组中的每个元素,将其设置为小写,然后将第一个字母大写。在此之后,您可以将它们与“,”一起加入。

var string = "deceMber iS Here" 
var arr = string.split(" ");

for(var i = 0; i < arr.length; i++){
    arr[i] = arr[i].toLowerCase();
    arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
}

str = arr.join(', ');

答案 2 :(得分:0)

首先将字符串设为小写,然后用大写字母替换每个单词的第一个字母。

var string = "deceMber iS Here";

console.log(string.toLowerCase().replace(/(^|\s)([a-z])/g, function(m,p1,p2){ return p1+p2.toUpperCase(); }));