To Top

English Example Sentences

HOME » Miscellaneous » Javascript » How to check numeric

《How to check numeric》

Javascriptには、数値かどうかチェックする方法がいくつかあります。

《isNaN》

isNaN関数は、Not a Numberの略で、数値でない場合trueを返し、数値だとfalseを返すので注意が必要です。

Input value :

isNaN()関数では、空文字とスペース文字とnullのチェックができない。

Return value = isNaN(InputValue)
Input value Return value Comment
123 false 数値
123abc true 数値でない
-123 false 数値
""(空文字) false 数値扱いとなってしまう。
" "(スペース1文字) false 数値扱いとなってしまう。
Infinity(正の無限) false 数値扱いとなる。
NaN(数値でない値) true 数値でない
null false 数値扱いとなってしまう。
undefined true 数値でない扱いとなってしまう。

《isFinite》

isFinite関数は、渡された値が有限数かどうかを判定します。

Input value :

isFinite()関数では、動きはisNaN()関数と同じで、戻り値だけisNaN()関数と逆になります。

Return value = isFinite(InputValue)
Input value Return value Comment
123 true 数値
123abc false 数値でない
-123 true 数値
""(空文字) true 数値扱いとなってしまう。
" "(スペース1文字) true 数値扱いとなってしまう。
Infinity(正の無限) true 数値扱いとなる。
NaN(数値でない値) false 数値でない
null true 数値扱いとなってしまう。
undefined false 数値でない扱いとなってしまう。

《parseInt》

parseInt関数は、文字列を整数に変換し、変換できない場合はNaNを戻り値として返します。

Input value :

ParseInt()関数は、戻り値がNaNであることを除けば、ある程度正しい動きをしてくれます。

Return value = parseInt(InputValue)
Input value Return value Comment
123 123
123.456 123 整数に変換される。
123abc 123 整数に変換されてしまう。
-123 -123
-123.456 -123 整数に変換される。
""(空文字) NaN 数値でない扱いになる。
" "(スペース1文字) NaN 数値でない扱いになる。
Infinity(正の無限) NaN 数値でない扱いになる。
NaN(数値でない値) NaN 数値でない扱いになる。
null NaN 数値でない扱いになる。
undefined NaN 数値でない扱いになる。

《parseFloat》

parseFloat関数は、文字列を実数に変換し、変換できない場合はNaNを戻り値として返します。

Input value :

ParseFloat()関数は、戻り値がNaNであることを除けば、ある程度正しい動きをしてくれます。

Return value = parseFloat(InputValue)
Input value Return value Comment
123 123
123.456 123 整数に変換される。
123abc 123 整数に変換されてしまう。
123.456a 123.456 整数に変換されてしまう。
-123 -123
-123.456 -123 整数に変換される。
""(空文字) NaN 数値でない扱いになる。
" "(スペース1文字) NaN 数値でない扱いになる。
Infinity(正の無限) Infinity 戻り値がNaNではなくなる。
NaN(数値でない値) NaN 数値でない扱いになる。
null NaN 数値でない扱いになる。
undefined NaN 数値でない扱いになる。

《正規表現》

正規表現(Regular Expression)は、文字の組み合わせを照合するために用いられるパターンです。 文字列.match(正規表現)という記述で、今回の正規表現の条件は、strRegExp.match(/[^0-9\.\-]/)==nullで指定しています。 matchの戻り値は、配列で0番目にパターンにマッチした文字列が入ってきます。パターンにマッチしない場合は、nullが返ります。

Input value :

[^0-9\.\-]は、0~9以外の数字 or .(ドット, 小数点)以外 or -(マイナス)以外にマッチすればその文字列を返します。この正規表現によるチェックだと、「---」や「....」などもOKになってしまいます。

正規表現の条件を厳しくして、符号(-のみ許容)あり、小数点を1回のみ許容した数値のチェックにしたものが、/^[-]?([1-9]\d*|0)(\.\d+)?$/です。

Input value :

/^[-]?([1-9]\d*|0)(\.\d+)?$/は、先頭だけ-(マイナス)を許容し、その次に(0を続けない)0~9の数字 or 0 その次に小数点を1回のみ その次に0~9の数字が1回以上、という意味です。

この正規表現を使えば数値チェックは十分です。