JavaScriptで文字列の数値をチェックするにはどうすればいいですか?

JavaScriptで文字列の数値をチェックするにはどうすればいいですか?

指定した正規表現に含まれる値をチェックするためには、searchメソッドを使用します。 数値を表す正規表現は、/^[0-9]+$/ で、これは、「0~9の数字が行頭から行末まで並んでいる」文字列とマッチします。

1. 正規表現を使用して文字列の数値をチェックする

JavaScriptでは、文字列が数値であるかどうかを確認するために、正規表現を使用することが一般的です。以下の正規表現/^[0-9]+$/を使用すると、その文字列が数字のみで構成されているかどうかをチェックできます。

1.1 searchメソッドの使用

JavaScriptのsearchメソッドは、文字列の中で指定された正規表現を検索し、一致する場所のインデックスを返します。一致する部分がない場合は-1を返します。この特性を使って文字列が数値であるかを確認します。


const input = "12345";
const isNumber = input.search(/^[0-9]+$/) !== -1;
console.log(isNumber); // true

2. 正規表現について理解する

正規表現/^[0-9]+$/の構成要素を分解すると以下のようになります:

表現 意味
^ 行頭を示す
[0-9] 0から9までのいずれかの数字を示す
+ 直前の要素が1回以上繰り返されることを示す
$ 行末を示す

3. その他の方法

JavaScriptで文字列が数値であることを確認するその他の方法として、parseIntまたはNumber関数を使用する方法があります。ただし、これらは数値に変換可能かをチェックするため、正確に数値のみで構成されているかを確認するには適していません。

3.1 parseIntやNumber関数の注意点

これらの関数は文字列が数値以外の文字を含んでいても数値に変換できてしまうため、完全なチェックには不向きです。


const input = "123abc";
const result = Number(input);
console.log(isNaN(result)); // true

QAセクション

  • Q1: searchメソッド以外での数値チェック方法は?
    A1: regex.testメソッドやmatchメソッドを用いることもできます。
  • Q2: parseInt関数はusefulですか?
    A2: 部分的な数値変換には有用ですが、完全な数値チェックには適していません。
  • Q3: 数字以外の特定の文字も許可したい場合は?
    A3: 正規表現を変更して許可したい文字も含めることで対応可能です。

その他の参考記事:javascript 数字 チェック