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 を使うのが一般的です。
-
JavaScriptの正規表現修飾子(g・i・m)をサンプルコード付きで解説
JavaScriptの正規表現修飾子とは JavaScriptの正規表現における修飾子(フラグ)とは、パターンリテラルの末尾に付加することで検索の挙動を変更できる、省略可能な指定のことです。これを使うことで、大文字と小文字を区別しない検索や文字列全体を対象としたグローバル検索などが簡単に実現できます。さらに、複数の修飾子を組み合わせて指定することも可能です。 主な修飾子の一覧 修飾子説明 gグローバルマッチングを有効にします。最初の一致で処理を止めず、マッチしたすべての結果を返します。 i大文字と小文字を区別しない(ignore case)マッチングを有効にします。 m複数行(mul
-
JavaScriptのyield*式とは?ジェネレーターの委譲方法をサンプルコードで解説
yield* 式は、別のジェネレーター関数やイテラブル(反復可能)オブジェクトを参照し、その値の生成処理を委譲するために使用される構文です。 通常の yield が単一の値を返すのに対し、yield* は指定したジェネレーターや配列などのイテラブルが持つすべての値を、あたかもその場所に直接記述したかのように順番に取り出します。これにより、複数のジェネレーターを連結したり、再帰的なデータ構造を簡潔に走査したりすることが可能になります。 yield*式の基本的な仕組み yield* の後にジェネレーターオブジェクトやイテラブルを指定すると、その要素がすべて順に生成されます。委譲先のジェネレーター