我找不到一个不是我想要的工作

时间:2011-12-15 07:27:03

标签: javascript int

我正在寻找最佳方法来检查var是否为数字

function isInt(n){ 
   return !isNaN(parseInt(n * 1));
}

alert(isInt(""));//true

这个网站骗了我http://www.inventpartners.com/content/javascript_is_int

并且anser https://stackoverflow.com/a/3886106/908879的一个人的第二个评论吓得我不够用他的答案

请帮我找到正确的plxplx

4 个答案:

答案 0 :(得分:3)

以下可能是您的问题的一个很好的解决方案。但是,如果它是浮点数

,则返回false
function isInt(n){ 
    return !isNaN(parseFloat(n)) && isFinite(n) && (n % 1 == 0); 
};

如果你想知道它是否一般是一个数字,最好的解决方案是

function isNumber(n){ 
    return !isNaN(parseFloat(n)) && isFinite(n); 
};

另请参阅:http://dl.dropbox.com/u/35146/js/tests/isNumber.html

答案 1 :(得分:0)

如果你只想知道n是一个数字,你可以使用:

function isNumber(n){
    return typeof n == 'number';
}
alert(isNumber(""));//false

答案 2 :(得分:0)

您可能需要进行更多检查:

function isInt(n){ 
 n = Number(n);
 return String(n).length 
        && !isNaN(parseInt(n,10)) 
        && n%1 === 0;
}

答案 3 :(得分:0)

如果你想要速度,有更快速运行的解决方案。

function isInt(v) { return v === ~~v; }
function isNumber(v) { return v === +v; }
function isNumeric(v) { return v === +v || v === +v + ''; }
function isIntLike(v) { return v === ~~v || v === ~~v + ''; }

所有相关检查都可以在没有函数调用的情况下定义。

请注意NaN !== NaN,因此无需isNaN来电。