How to capitalize first letter of each word, like a 2-word city? [duplicate]
My JS woks well when the city has one word:
- cHIcaGO ==> Chicago
But when it's
- san diego ==> San diego
How do I make it become San Diego?
function convert_case() {
document.profile_form.city.value =
document.profile_form.city.value.substr(0,1).toUpperCase() +
document.profile_form.city.value.substr(1).toLowerCase();
}
There's a good answer here:
function toTitleCase(str) {
return str.replace(/\w\S*/g, function(txt){
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
or in ES6:
var text = "foo bar loo zoo moo";
text = text.toLowerCase()
.split(' ')
.map((s) => s.charAt(0).toUpperCase() + s.substring(1))
.join(' ');
You can use CSS:
p.capitalize {text-transform:capitalize;}
Update (JS Solution):
Based on Kamal Reddy's comment:
document.getElementById("myP").style.textTransform = "capitalize";
function convertCase(str) {
var lower = String(str).toLowerCase();
return lower.replace(/(^| )(\w)/g, function(x) {
return x.toUpperCase();
});
}