最初の文字を大文字にし、残りの文字列を小文字にする方法

Aug 20 2020

文の最初の単語だけの最初の文字を大文字にしようとしています。

これは、tsxファイルのデータです{this.text({id:downloadPriceHistory、defaultMessage: 'Download Price History'})}上記のIDは、さまざまな形式でAPIに送信できるデータベースから取得されます。

私は以下のこのロジックを使おうとしました:

export function titleCase(string) {
    string = 'hello World';
    const sentence = string.toLowerCase().split('');
      for (let i = 0; i < sentence.length; i++) {
          sentence[i] = sentence[i][0].toUpperCase() + sentence[i];
    }
     return sentence;

}

たとえば、入力の"Download Price History"場合、結果はになります"Download price history"

回答

4 iota Aug 20 2020 at 18:36

最初の文字を大文字にして、それを小文字に変換された文字列の残りの部分に連結するだけです。

function titleCase(string){
  return string[0].toUpperCase() + string.slice(1).toLowerCase();
}
console.log(titleCase('Download Price History'));

これも設定することによりCSSを用いて達成することができるtext-transformlowercase素子全体および使用::first-letter設定する擬似要素をtext-transformしますuppercase

.capitalize-first {
  text-transform: lowercase;
}
.capitalize-first::first-letter {
  text-transform: uppercase;
}
<p class="capitalize-first">Download Price History</p>

2 Manas Aug 20 2020 at 18:35

try-文字列の残りの部分も小文字にします。

export function titleCase(string) {
     return string[0].toUpperCase() + string.substr(1).toLowerCase()
}
1 codythecoder Aug 20 2020 at 18:41

文字列全体を小文字にし、新しい文字列の最初の文字だけを大文字にしないのはなぜですか?

function titleCase(string) {
    let sentence = string.toLowerCase();
    let titleCaseSentence = sentence.charAt(0).toUpperCase() + sentence.substring(1, sentence.length);
    return titleCaseSentence;
}

(また、その最初の行で関数のパラメーターを消去しています)

    string = 'hello World';
1 MuriloGóesdeAlmeida Aug 20 2020 at 18:43

私の提案は、文字列の最初の要素を取得して大文字にし、残りの文字列を取得して小文字の関数を適用することです。

titleCase(string) {
  return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
1 Constantin Aug 20 2020 at 18:36

CSSの使用:

p {
  text-transform: lowercase;
}
p::first-letter {
  text-transform: uppercase
}

JSの使用:

const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1).toLowercase();