私は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の既存の機能ツールボックスは、文字列を操作するときに大文字化タスクの短い作業を行うことができます。 これは主に正規表現の力のおかげです。正規表現がなければ、これらのコード例はさらに長くなっていたからです。