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

JavaScriptの正規表現(RegExp)で角括弧内に含まれない文字を検索する方法

否定文字クラスとは

JavaScriptの正規表現で、特定の文字「以外」を検索したい場合は、否定文字クラスと呼ばれるパターンを使用します。これは角括弧 [ ] の中の先頭にキャレット(^)を記述することで実現でき、「括弧内に列挙されていない任意の1文字」にマッチします。

構文

[^...]

たとえば [^m] と書けば、「m 以外の任意の文字」に一致します。

サンプルコード

以下のコードでは、文字列から「m」以外のすべての文字を検索しています。

<html>
   <head>
      <title>JavaScript Regular Expression</title>
   </head>
   <body>
      <script>
         var myStr = "Welcome! Welcome to the website!";
         var reg = /[^m]/g;
         var match = myStr.match(reg);

         document.write(match);
      </script>
   </body>
</html>

実行結果のポイント

パターンの末尾に付けている g フラグはグローバル検索を意味し、文字列全体から条件に合うすべての文字を抽出します。match() メソッドの戻り値は配列になるため、この例では「W」「e」「l」「c」「o」など、元の文字列から「m」を除いたすべての文字が順番に格納されます。

なお、否定文字クラスは複数の文字や範囲指定にも対応しています。例えば [^a-z] なら小文字のアルファベット以外、[^0-9] なら数字以外の文字にマッチするため、入力値のバリデーションなど幅広い場面で活用できます。

  1. JavaScriptの配列から2番目に大きい要素を効率的に見つける方法

    JavaScriptで配列の中から2番目に大きい要素を取得したい場面はよくあります。本記事では、ループを1回だけ使って効率的に求める方法を、実際のコードと実行結果付きで解説します。 サンプル配列の準備 まず、例として次のような数値の配列を用意します。 var numbers = [10, 50, 80, 60, 89]; 2番目に大きい要素を見つけるコード 最大値と2番目の値を同時に追跡しながら、配列を一度だけ走査するのがポイントです。 var numbers = [10, 50, 80, 60, 89]; // 安全な整数の最小値で初期化 var firstLargerNumber = N

  2. 【JavaScript】否定先読みを使って、別の文字に続く特殊文字をすべて置き換える方法

    はじめにJavaScriptで文字列を処理していると、「<」などの特殊文字が連続して含まれているケースに遭遇することがあります。本記事では、否定先読み(ネガティブ・ルックアヘッド)を使った正規表現と replace() メソッドを組み合わせて、特殊文字の直後に別の文字が続く場合のみスペースを挿入する方法を解説します。まず、例として次のように特殊文字「<」が連続した文字列を用意します。var sentence = <My<Name<is<John<Doe;replace() と正規表現による置換処理この問題を解決するには、replace() メソッドと正