jquery 数値かチェック

$.isNumeric()、isNaN()、isFinite()や正規表現などでチェック

作成日:2018-03-23, 更新日:2018-03-23

基本

下記の3種で数値かどうかチェックしてくれる。
・「$.isNumeric()」は、値が「数値」か「数値に変換できるか」をチェック。
・「isNaN()」は、値が「NaN(Not a Number:非数)」かどうかをチェック。
・「isFinite()」は、値が「有限数」かチェック。

form等で数字のみかどうかチェックしたいときは正規表現でチェックする。

$.isNumeric()のサンプル

// true (numeric)
$.isNumeric( "-10" )
$.isNumeric( "0" )
$.isNumeric( 0xFF )
$.isNumeric( "0xFF" )
$.isNumeric( "8e5" )
$.isNumeric( "3.1415" )
$.isNumeric( +10 )
$.isNumeric( 0144 )

// false (non-numeric)
$.isNumeric( "-0x42" )
$.isNumeric( "7.2acdgs" )
$.isNumeric( "" )
$.isNumeric( {} )
$.isNumeric( NaN )
$.isNumeric( null )
$.isNumeric( true )
$.isNumeric( Infinity )
$.isNumeric( undefined )

jQuery.isNumeric()

isNaN()のサンプル

// true:「NaN(Not a Number:非数)」である→数字・数値ではない
isNaN('abc');
isNaN('true');    // 文字列としての「true」
isNaN(undefined);

// false :数字・数値
isNaN(123);
isNaN(0x12);   // 16進リテラル
isNaN('123');  // 文字列を数値に変換してチェックしてくれる
isNaN('0x12'); // 文字列を数値に変換してチェックしてくれる
isNaN(true);   // bool値は「1」or「0」
isNaN(null);

isFinite()のサンプル

// true:有限数である
isFinite(0);
isFinite(2e64);
isFinite(null);

// false
isFinite(Infinity);
isFinite(NaN);
isFinite(-Infinity);

// 他
isFinite("0");       // true
Number.isFinite("0") // false

正規表現でチェック

var str = 〇〇〇;
if( !str.match(/^[0-9]+$/) ){
  // 数字以外が含まれている
}