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

JavaScriptで数値のみに一致する正規表現の使い方

JavaScriptで文字列から数値(数字)だけを抽出したい場合、正規表現を使うのが最も簡単な方法です。本記事では、\d を使った基本的なパターンから、実用的なサンプルコードまでわかりやすく解説します。

数値に一致する正規表現の基本

半角数字1文字に一致する正規表現は /\d/ です。\d は「digit(数字)」を意味するメタ文字で、0〜9のいずれか1文字にマッチします。

さらに、末尾に g フラグ(グローバルフラグ)を付けると、文字列内のすべての数字に一致させることができます。フラグを付けない場合は、最初の1件しかマッチしないので注意してください。

サンプルコード

以下のコードは、文字列からすべての数字を抽出して表示する例です。

<html>
<head>
  <title>JavaScript Regular Expressions</title>
</head>
<body>
  <script>
    var myStr = "5200% Demo";
    var reg = /\d/g;

    var match = myStr.match(reg);

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

実行結果

5,2,0,0

コードの解説

  • /\d/g:数字1文字に一致するパターンです。g フラグにより、マッチするすべての箇所が対象になります。
  • match():文字列に対して正規表現を適用し、マッチした部分を配列として返すメソッドです。グローバルフラグ付きの場合、マッチした文字列の配列が返されます。

この例では「5200% Demo」という文字列に対してパターンを適用しているため、「5」「2」「0」「0」がそれぞれ配列の要素として取得されます。

連続した数値として取得したい場合

上記の方法では数字が1文字ずつ分割されてしまいます。「5200」のように連続した数値をひとまとまりで取得したい場合は、量指定子 + を使います。

var myStr = "5200% Demo 123";
var reg = /\d+/g;

var match = myStr.match(reg);
document.write(match); // 5200,123

\d+ とすることで、「1文字以上の数字の並び」に一致し、数値ごとに抽出できます。

まとめ

  • 数字1文字に一致させるには /\d/ を使用する。
  • すべてのマッチを取得したい場合は g フラグを付ける。
  • 連続した数値を取得したい場合は \d+ を使う。

正規表現を活用すれば、フォームの入力チェックやログ解析など、さまざまな場面で数値の抽出・検証が簡単に行えます。ぜひ実際のコードで試してみてください。

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

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

  2. Pythonの正規表現を使って文字列から数字のみを抽出・マッチングする方法

    Pythonでは、標準ライブラリの re モジュールを使うことで、正規表現によるパターンマッチングが簡単に行えます。文字列から「数字のみ」を取り出したい場合は、メタ文字 \d(任意の1桁の数字に一致)を使用します。ここでは、代表的な2つの方法——re.search() と re.findall() を使った例を紹介します。なお、コードはPython 3系の記法に準拠しています。例1:re.search() で最初に見つかった数字の並びを取得する次のコードは、指定した文字列の中から最初に出現する連続した数字(1桁以上)を検索し、マッチオブジェクトとして返します。import re m = re