2011-11-17 11 views
0

可能重复整数:
How to check if a number is float or integer?如何识别某个数字是使用JavaScript

我一直在使用JavaScript函数isNaN(value)用于识别号码是否为整数或浮动。但是现在我面临着另一个问题,就是NaN()不能过滤浮点数。它接受它作为整数。

此外,它必须把1.0作为一个整数

有人能指导我找到了一个方式,我可以过滤整数值呢?

+1

十进制是一个数字。也许你的意思是'整数'? – tekknolagi

+1

+1 to u @tekknolagi是的,我的意思是整数 –

+0

你是不是指'整数'? – steveyang

回答

0
function is_int(value){ 
    if ((parseFloat(value) == parseInt(value)) && !isNaN(value)) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

这太:

function isInt(n) { 
    return n % 1 == 0; 
} 

,如果你想2.00计为一个整数这将工作。如果你想严格int

function is_int(value){ 
    return !isNaN(parseInt(value * 1)); 
} 

会工作。

+0

我说'int'类型,但JS中只有'number'。你知道我的意思。 – tekknolagi

+0

最后的解决方案接受字母..我只需要整数通过 –

+0

@OMTheEternity最后的解决方案将不接受字符串。 – tekknolagi

1

您可以使用正则表达式

if(/^-?\d+\.?\d*$/.test(1.23)) { 
    // hurray this is a number 
} 
+1

哇......心中难以忘怀o.O – tekknolagi

+0

我的答案如何? – tekknolagi

1

在JavaScript中,小数和整数之间没有区别,它们都是number。到diffrentiated一种方法是使用正则表达式来测试

var intTest = /^-?(\d+|0)$/; 
if(intTest.test(someNumber)) { 
    console.log('int'); 

} 

// intTest.test(2); 
// true 
// intTest.test(2.1); 
// false 
// intTest.test(0); 
// true 
// intTest.test(-1); 
// true 
// intTest.test(-1.2); 
// false