2011-06-22 39 views
5

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

事情是这样的......

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

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

回答

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

还需要检查它是否是一个整数:

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

检查类型是数字,以及它是否是一个int使用parseInt

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

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

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

6

我想说

n === parseInt(n) 

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

+2

你是幸运的,'NaN的===楠FALSE' – ajax333221

1

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

使用正则表达式

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

例如 == vs. ===