我一直在使用JavaScript函数isNaN(value)
来识别数字是整数还是浮点数。但现在我面临另一个问题,即NaN()没有过滤浮点数。它接受它为整数。
此外,它必须将1.0视为整数
有人可以指导我找出一种可以过滤整数值的方法吗?
答案 0 :(得分:2)
在javaScript中,十进制和整数之间没有区别,它们都是number
。区分差异的一种方法是使用正则表达式来测试数字
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
答案 1 :(得分:1)
您可以使用正则表达式
if(/^-?\d+\.?\d*$/.test(1.23)) {
// hurray this is a number
}
答案 2 :(得分:1)
在这里提问并回答:
答案 3 :(得分: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
计为整数,这将有效。
function is_int(value){
return !isNaN(parseInt(value * 1));
}
如果您严格要求int
类型,则可以使用。