数値を判定

数値を判定するには、次のような方法で可能です。

  • 数字ではなく数値であることに注意してください。
  • ※ 100%数値であることを保証するものではありません。

JavaScript (ES5)

/**
 * 数値を判定
 * @param {any} target 判定する値
 * @return {boolean} 判定した結果を返す
 */
var isFigures = function(target) {
	return typeof target === 'number' && isFinite(target) && !isNaN(target);
};

var result1  = isFigures(123),       // true
    result2  = isFigures('123'),     // false
    result3  = isFigures(0),         // true
    result4  = isFigures(-1),        // true
    result5  = isFigures(1.23),      // true
    result5  = isFigures(0123),      // true
    result5  = isFigures(0xFF),      // true
    result6  = isFigures([]),        // false
    result7  = isFigures({}),        // false
    result8  = isFigures(true),      // false
    result9  = isFigures(false),     // false
    result10 = isFigures(null),      // false
    result11 = isFigures(undefined), // false
    result12 = isFigures(Infinity);  // false

JavaScript (ES6以降)

/**
 * 数値を判定
 * @param {any} target 判定する値
 * @returns {boolean} 判定した結果を返す
 */
const isFigures = target => typeof target === 'number' && Number.isFinite(target) && !Number.isNaN(target);

console.log(isFigures(123));       // true
console.log(isFigures('123'));     // false
console.log(isFigures(0));         // true
console.log(isFigures(-1));        // true
console.log(isFigures(1.23));      // true
console.log(isFigures(0123));      // true
console.log(isFigures(0xFF));      // true
console.log(isFigures([]));        // false
console.log(isFigures({}));        // false
console.log(isFigures(true));      // false
console.log(isFigures(false));     // false
console.log(isFigures(null));      // false
console.log(isFigures(undefined)); // false
console.log(isFigures(Infinity));  // false

typeof演算子で型を判定します。
Number.isFiniteメソッド(ECMAScript 5以下はisFinite関数)で有限数かを判定します。
Number.isNaNメソッド(ECMAScript 5以下はisNaN関数)で数値型かを判定します。

もし整数だけであれば、加えてNumber.isIntegerメソッドを組み合わせるとよいかと思います。

JavaScript逆引きリファレンス一覧へ戻る