私の JS は、都市に 1 つの単語がある場合にうまく機能します。
- シカゴ ==> シカゴ
しかし、
- サンディエゴ ==> サンディエゴ
どうすればサンディエゴになるのでしょうか?
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();
}
ベストアンサー1
良い答えがあるここ:
function toTitleCase(str) {
return str.replace(/\w\S*/g, function(txt){
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
または ES6 では:
var text = "foo bar loo zoo moo";
text = text.toLowerCase()
.split(' ')
.map((s) => s.charAt(0).toUpperCase() + s.substring(1))
.join(' ');