【JavaScript】正規表現で数値の判定をする方法

こんにちは!CODE CLUB965のKです!

今回は、JavaScriptで正規表現を使って数値かどうか判定する方法について書こうと思います。

JavaScript の数値判定に isNaN 関数を使うことがあるかもしれませんが、これはあまりおすすめできない方法です。
正しい仕様を理解していればまだいいのですが、知らなければバグの原因になる危険があります。

使わない方がいい理由については、記事を書いていますので参考にして下さい。

なので、どんな形式の数値を判定したいか明確であるならば、正規表現を用いたほうが間違いないのでおすすめします。

数値を判定する正規表現

判定対象の数値には、

・プラスやマイナスの記号を許容するかどうか(符号付きの条件)
・小数を含むかどうか

などなど色々なパターンがあります。

一概に数値の判定と言っても条件は様々なので、それらの条件に合う正規表現を使うようにしましょう。

正規表現の一覧

パターンゼロ埋めなしゼロ埋めあり
0以上、整数のみ/^([1-9]\d*|0)$//^\d*$/
整数 (+ のみ許容)
/^[+]?([1-9]\d*|0)$/
/^[+]?\d*$/
整数 (+, – 許容)/^[+,-]?([1-9]\d*|0)$//^[+,-]?\d$/
符号なし小数/^([1-9]\d*|0)(\.\d+)?$//^\d(\.\d+)?$/
符号あり小数 (+ のみ許容)/^[+]?([1-9]\d*|0)(\.\d+)?$//^[+]?\d*(\.\d+)?$/
符号あり小数 (+, – 許容)
/^[+,-]?([1-9]\d*|0)(\.\d+)?$/
/^[+,-]?\d(\.\d+)?$/

ゼロ埋めありとは、例えば「0123」のように、先頭がゼロの場合を許容したパターンです。

IDなど判定したいときに使えるかと思います。

補足として、上記の内容は半角数字の場合の条件です。
全角数字を許容する場合は、以下の通り書き変えて下さい。
ただしこのケースでは、全角と半角が混在しても OK の判定となります。

ゼロ埋めなし : [1-9] → [1-91-9]
ゼロ埋めあり : \d → [0-90-9]

数値判定を行う関数のコード例

以下に数値判定をする関数を作ってみたので参考にして下さい。

/**
 * 数値判定を行う関数
 */
function isNum(num){
  // 判定条件パターン
  var pattern = /^([1-9]\d*|0)$/;
  
  // 数値チェック
  return pattern.test(num);
}

こんな感じで数値判定の関数を作ることができます。

数値であればtrueが、数値でなければfalseが返ります。

最後に

今回は、正規表現を使った数値の判定方法について書きました。

正規表現がよく分からないという方は、一度調べて概要ぐらいは理解しておいた方がいいと思います。

それでは、また!

Follow me!

【JavaScript】正規表現で数値の判定をする方法” に対して1件のコメントがあります。

コメントは受け付けていません。