如何检查JavaScript参数是否为数字?

时间:2011-06-22 14:41:58

标签: javascript

我正在做一些故障排除,并希望添加一个检查,函数的参数是一个数字。我该怎么做?

像这样......

function fn(id) {
    return // true iff id is a number else false
}

更好的是,如果我可以检查参数是一个数字和一个有效的整数。

6 个答案:

答案 0 :(得分:18)

function fn(id) {
    return typeof(id) === 'number';
}

还要检查它是否为整数:

function fn(id) {
    return typeof(id) === 'number' &&
            isFinite(id) &&
            Math.round(id) === id;
}

答案 1 :(得分:9)

我会说

 n === parseInt(n)

就够了。注意三个'===' - 它检查类型和值

答案 2 :(得分:1)

使用parseInt检查类型是否为数字,以及是否为int:

if (typeof id == "number" && id == parseInt(id))

答案 3 :(得分:1)

===表示严格等于和==检查值是否相等。 这意味着“2”== 2为真,但“2”=== 2为假。

使用正则表达式

var intRegex = /^\d+$/;
if(intRegex.test(num1)) { 
//num1 is a valid integer
}

的例子 == vs. ===

答案 4 :(得分:0)

function fn(id){ 
  if((parseFloat(id) == parseInt(id)) && !isNaN(id)){
      return true;
  } else { 
      return false;
  } 
}

答案 5 :(得分:0)

function fn(id) {
    var x = /^(\+|-)?\d+$/;
    if (x.test(id)) {
        //integer
        return true;
    }
    else {
        //not an integer
        return false;
    }
}

测试小提琴:http://jsfiddle.net/xLYW7/