JavaScriptで文字列を大文字にする

提供:Dev Guides
移動先:案内検索

私はJavaScriptが大好きですが、PHPに比べて、組み込みの文字列操作が不足しています。 もちろん、文字列操作のニーズに合わせてサードパーティの依存関係を利用することもできますが、多くの場合、それはアプリケーションで必要とされるよりもはるかに重要です。

JavaScriptには組み込みの機能がありませんが、キャピタライゼーションタスクを簡単に処理できる十分な機能が備わっています。

入門

純粋なJavaScriptを使用するため、インストールする必要のある追加機能はありません。 実際、ブラウザのコンソールで、またはNode.jsREPLを介して簡単にフォローできます。

文字列全体を大文字にする方法

これは簡単で、おそらくあなたがすでに知っていることです。 文字列全体を大文字にするには、文字列に対して.toUpperCase()を呼び出すだけです。

let myString = 'alligator';
myString.toUpperCase();

これにより、小文字の文字列が大文字のALLIGATORに変換されます。

これは、大文字と小文字が混在する文字列でも機能します。

myString = 'AlliGator';
myString.toUpperCase();

同じ結果、文字列はALLIGATORになります。

文字列の最初の文字を大文字にする方法

さて、最初のものは簡単で、物事は本当にすぐにかなり複雑になりそうです。

Stringプロトタイプには、文字列の最初の文字だけを大文字にする組み込みのメソッドがないため、少しクリエイティブにする必要があります。

物事の要点は、文字列の最初の文字を取得し、それを大文字にしてから、残りの文字列を取得して、物事を再組み立てする必要があるということです。

幸い、これらの各手順を実行する必要はなく、正規表現を使用して最初の文字を取得して大文字にし、変更された文字列を返すことができます。

myString = 'the quick green alligator...';
myString.replace(/^\w/, (c) => c.toUpperCase());

これにより、文字列はThe quick green alligator...になります。

文字列の前にスペースがない限り、これは素晴らしいことです。

ユーザー生成コンテンツの不整合に対処しているときのように、上記のパディングに遭遇するかどうかわからない場合は、.trim()メソッドを含めて、大文字にする前にクリーンアップすることができます。

myString = '    the quick green alligator...';
myString.trim().replace(/^\w/, (c) => c.toUpperCase());

文字列内の各単語の最初の文字を大文字にする方法

文字列の最初の文字を大文字にするのと同様に、文字列内の各単語の最初の文字を大文字にするためにJavaScriptに組み込まれるものはありません。これは、タイトルの大文字小文字とも呼ばれます。

同様のアプローチを取る必要があります。文字列を単語に分割し、各単語を大文字にしてから、間にスペースを入れて再構成する必要があります。

.split().join()を使用して、以前の大文字の正規表現を間に挟んでこれにアプローチできます。

または、ミックスに別の正規表現を追加するだけでアプローチできます。

myString = 'the quick green alligator...';
myString.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));

The Quick Green Alligator...を差し上げます。

単語自体を分離しているため、この方法は、間隔を進めることに関しては、もう少しフォールトトレラントです。 ただし、結果の文字列に上記のパディングが必要ない場合は、文字列をtrim()することもできます。

MiXeD CaSeである単語を含む文字列を使用している場合は、一貫性を保つために.toLowerCase()への呼び出しを含めることもできます。

myString = '  tHE QuICk GrEEn alliGATOR...  ';
myString.trim().toLowerCase().replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));

それでもThe Quick Green Alligator...を取得します。

確かに、これは文字列内の頭字語も小文字にするため、マイレージは異なる場合があります。

結論

追加のユーティリティメソッドがなくても、JavaScriptの既存の機能ツールボックスは、文字列を操作するときに大文字化タスクの短い作業を行うことができます。 これは主に正規表現の力のおかげです。正規表現がなければ、これらのコード例はさらに長くなっていたからです。