大写数组中每个单词的第一个字母

Zar*_*eto 2 javascript jquery

我有一个阵列

var myarr = [ "color - black", "color - blue", "color - Red" ]
Run Code Online (Sandbox Code Playgroud)

我想要用":"替换" - "并大写该数组中每个单词的第一个字母:

var myarr = [ "Color: Black", "Color: Blue", "Color: Red" ]
Run Code Online (Sandbox Code Playgroud)

我试试

for (var i = 0; i < myarr.length; i++) {
  myarr[i] = myarr[i][0].toUpperCase()+myarr[i].replace(/ -/g, ":").substring(1);
}
Run Code Online (Sandbox Code Playgroud)

但它只适用于第一个单词

Ada*_*ska 5

您可以使用另一个正则表达式在函数中为其大写字母交换字母.这样的东西会起作用:

String.prototype.capitalize = function() {
    return this.replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
};


var myarr = [ "color - black", "color - blue", "color - Red" ]

for(var i=0; i < myarr.length; i++) {
    myarr[i] = myarr[i].capitalize().replace(/ -/g, ":");
}

console.log(myarr)
Run Code Online (Sandbox Code Playgroud)

你可以看到它在这里工作:https ://jsfiddle.net/igor_9000/c7tqraLo/这里原来的SO问题:大写字母串字