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

JavaScript正規表現で数字以外の文字を検索する方法(\Dの使い方)

JavaScriptの正規表現で数字以外の文字を検索するには、メタ文字 \D を使用します。

\D は「数字以外の任意の1文字」にマッチします。数字そのものを表す \d の否定形にあたり、英字・記号・空白など、0〜9以外のすべての文字が対象になります。

使用例

以下のコードでは、文字列「100% Responsive!」から数字以外の文字をすべて抽出しています。フラグ g を付けることで、文字列全体から該当するすべての文字を検索できます。

<html>
  <head>
    <title>JavaScript Regular Expression</title>
  </head>

  <body>
    <script>
      var myStr = "100% Responsive!";
      var reg = /\D/g;
      var match = myStr.match(reg);

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

実行結果

上記コードを実行すると、コンソールに次のような配列が出力されます。

["%", " ", "R", "e", "s", "p", "o", "n", "s", "i", "v", "e", "!"]

このように、match() メソッドと \D を組み合わせることで、文字列内の数字以外の文字を簡単に取り出すことができます。

補足:\D と [^0-9] の関係

\D は文字クラス [^0-9] と同じ意味です。どちらを使っても動作は同一ですが、可読性の観点から短い \D を使うのが一般的です。

  1. JavaScriptの正規表現修飾子(g・i・m)をサンプルコード付きで解説

    JavaScriptの正規表現修飾子とは JavaScriptの正規表現における修飾子(フラグ)とは、パターンリテラルの末尾に付加することで検索の挙動を変更できる、省略可能な指定のことです。これを使うことで、大文字と小文字を区別しない検索や文字列全体を対象としたグローバル検索などが簡単に実現できます。さらに、複数の修飾子を組み合わせて指定することも可能です。 主な修飾子の一覧 修飾子説明 gグローバルマッチングを有効にします。最初の一致で処理を止めず、マッチしたすべての結果を返します。 i大文字と小文字を区別しない(ignore case)マッチングを有効にします。 m複数行(mul

  2. JavaScriptのyield*式とは?ジェネレーターの委譲方法をサンプルコードで解説

    yield* 式は、別のジェネレーター関数やイテラブル(反復可能)オブジェクトを参照し、その値の生成処理を委譲するために使用される構文です。 通常の yield が単一の値を返すのに対し、yield* は指定したジェネレーターや配列などのイテラブルが持つすべての値を、あたかもその場所に直接記述したかのように順番に取り出します。これにより、複数のジェネレーターを連結したり、再帰的なデータ構造を簡潔に走査したりすることが可能になります。 yield*式の基本的な仕組み yield* の後にジェネレーターオブジェクトやイテラブルを指定すると、その要素がすべて順に生成されます。委譲先のジェネレーター