在纯JavaScript中是否有类似于isNumeric
的函数?
我知道jQuery有这个函数来检查整数。
在纯JavaScript中是否有类似于isNumeric
的函数?
我知道jQuery有这个函数来检查整数。
没有 isNumeric()
这样的函数类型,但您可以添加自己的函数:
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
注意:由于parseInt()
不是检查数字的正确方式,因此不应使用。
parseInt
是错误的做法(然后继续使用parseFloat
,这似乎并没有什么不同)。有趣的是,isFinite
几乎可以在所有情况下单独得到您想要的结果(除了空格字符串,由于某种原因返回true
),因此在这种情况下,parseInt
与parseFloat
似乎无关紧要。我肯定找不到任何一个输入函数的例子,其中parseInt
会有所不同。 - ValaNumber.isInteger()
是什么?https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger - kurdtpageisNumeric([0]) === true
和 isNumeric(['123']) === true
。 - Timbo White这应该会有所帮助:
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function IsNumeric(val) {
return Number(parseFloat(val)) == val;
}
NaN
调用IsNumeric
可能会失败,但由于NaN
的特殊性质使其不等于任何东西,所以实际上它可以正常工作。 - ValaNumber()
进行类型转换,而是使用双等号进行一些转换:let isNumeric = (val) => parseFloat(val) == val;
这段代码的意思是判断给定的参数是否为数值类型,它会将传入的参数先转换为浮点数,然后再通过双等号与原始参数进行比较来进行类型转换。 - Mark BirbeckNumber(val).toString() == val.toString()
? - x-yuriisNaN(null) === false
",意思是:"当我执行 isNaN(null)
时,返回值为 false
。" - jayfloisNaN(true) === false; isNaN(false) === false;
- cmezavar str = 'test343',
isNumeric = /^[-+]?(\d+|\d+\.\d*|\d*\.\d+)$/;
isNumeric.test(str);
function isNumeric(str) { return /^\d*\.{0,1}\d*$/.test(str); }
。 - ebobisFinite(String(n)) 会对 n=0 或 '0'、'1.1' 或 1.1 返回 true,
但对于 '1 dog' 或 '1,2,3,4'、+- Infinity 和任何 NaN 值,都会返回 false。
value => !isNaN(+value)
。这个表达式的意思是判断一个值是否为数字,如果不是则返回 true,否则返回 false。 - Hulke