1. ホーム
  2. ジャバスクリプト

[解決済み】2単語の都市のように、各単語の最初の文字を大文字にする方法は?重複

2022-04-02 20:06:42

質問

私のJSは、都市が一文字のときにうまく機能する。

  • cHIcaGO ==> シカゴ

しかし、それが

  • サンディエゴ ==> 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();
}

解決方法は?

良い答えがあります こちら :

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(' ');