JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで大文字・小文字を区別しないswitch-case文を使う方法

大文字・小文字を区別しないswitch-caseの基本

JavaScriptのswitch-case文は、デフォルトでは大文字と小文字を厳密に区別して比較します。そのため、大文字・小文字を区別せずに判定したい場合は、switchに渡す文字列を事前にtoUpperCase()メソッド(またはtoLowerCase()メソッド)で、すべて大文字またはすべて小文字に統一しておくのが定番の手法です。

この方法を使えば、入力値が「amit」「Amit」「AMIT」のどれであっても、同じcaseラベルにマッチさせることができます。

サンプルコード

以下のコードを実行して、大文字・小文字を区別しないswitch文の動作を確認してみましょう。

<!DOCTYPE html>
<html>
   <body>
      <h3>JavaScript文字列</h3>
      <p id="test"></p>
      <script>
         var str = "amit";
         str = str.toUpperCase();
         switch (str) {
            case 'AMIT': document.write("名前はAMITです <br>");
            break;
            case 'JOHN': document.write("名前はJOHNです <br>");
            break;
            default: document.write("不明な名前です<br>")
         }
         document.write("switchブロックを抜けました");
      </script>
   </body>
</html>

コードの解説

このサンプルでは、まず変数strに「amit」という文字列を代入し、toUpperCase()で「AMIT」に変換しています。その結果、switch文のcase 'AMIT'に一致し、対応する処理が実行されます。

仮に元の文字列が「AMIT」や「Amit」であっても、変換後はすべて「AMIT」になるため、同じcaseにマッチします。入力値の大文字・小文字が不定な場合でも、正しく判定できるのがこの方法のメリットです。

補足:toLowerCase()を使う方法

逆に、caseラベルをすべて小文字で記述したい場合は、str.toLowerCase()を使って文字列を小文字に統一しても同じ結果が得られます。プロジェクトのコーディング規約に合わせて、どちらか一方の方法に統一すると可読性が向上します。

  1. JavaScriptでドキュメントの読み込み状態(readyState)を確認する方法

    JavaScriptでドキュメント(ページ)の読み込みが完了しているかどうかを確認するには、document.readyStateプロパティを使用します。このプロパティは、現在のドキュメントの読み込み状況に応じて以下の3つの文字列を返します。loading … ドキュメントがまだ読み込み中の状態interactive … ドキュメントの解析は完了したが、画像などのサブリソースは still 読み込み中の状態complete … ドキュメントとすべてのサブリソースの読み込みが完了した状態以下は、ボタンをクリックしたタイミングでdocument.readyStateの値を判定し、ページの読み込み状

  2. C#でStringBuilderを使う方法!文字列操作の基本と実例を解説

    C#のStringBuilderクラスを使うと、文字列の文字数を柔軟に拡張できます。string型は一度生成すると内容を変更できない(イミュータブル)のに対し、StringBuilderは可変であり、文字列を拡張・編集してもメモリ上に新しいオブジェクトを作成しません。そのため、ループ処理などで繰り返し文字列を連結する場合には、パフォーマンス面で大きなメリットがあります。 StringBuilderの初期化 StringBuilderを使用するには、System.Text名前空間を参照したうえで、インスタンスを初期化します。 StringBuilder str = new StringBuild