Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
822 views
in Technique[技术] by (71.8m points)

javascript - Capitalize the first letter of every word in array

I have an array

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

And I want want to replace " - " with ":" and capitalize the first letter of every word in that array:

var myarr = [ "Color: Black", "Color: Blue", "Color: Red" ]

I try

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

But it works only for the first word

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use another regex to swap letters for their capitals in a function. Something like this will work:

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)

You can see it working here: https://jsfiddle.net/igor_9000/c7tqraLo/ The original SO question here: Capitalize words in string


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...