我正在寻找最佳方法来检查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
答案 0 :(得分:3)
以下可能是您的问题的一个很好的解决方案。但是,如果它是浮点数
,则返回falsefunction isInt(n){
return !isNaN(parseFloat(n)) && isFinite(n) && (n % 1 == 0);
};
如果你想知道它是否一般是一个数字,最好的解决方案是
function isNumber(n){
return !isNaN(parseFloat(n)) && isFinite(n);
};
答案 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
来电。