我有一个数组

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

我想用“:”替换“- ”并将该数组中每个单词的第一个字母大写:
var myarr = [ "Color: Black", "Color: Blue", "Color: Red" ]

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

但它只适用于第一个词

最佳答案

您可以使用另一个正则表达式在函数中将字母交换为大写。像这样的事情会起作用:

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)

你可以看到它在这里工作:https://jsfiddle.net/igor_9000/c7tqraLo/
原来的问题在这里:Capitalize words in string

关于javascript - 将数组中每个单词的第一个字母大写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35067294/

10-12 00:57