我在整个地方看到你应该使用!isNaN函数检查一个值是否为数字。这个方法对我来说似乎很奇怪,因为我总是使用以下方法,它似乎可以轻松快速地检查null和数字。这种方法有什么问题吗?
var num = getCookie('testnum');
if (+num) { console.log('num is not null and is a number'); }
由于
答案 0 :(得分:1)
假设您要检查字符串是否包含文字js编号(并且没有其他内容),那么是的,这是一个问题:
var num = "0";
可以通过测试来修复
if (num==+num) {
答案 1 :(得分:0)
试试这个:
if (!isNaN(parseInt(num))) { console.log('This is a number'); }
答案 2 :(得分:0)
使用isFinite()
和isNaN()
方法检查这是否为数字的最佳方法之一。也不要忘记对象检查。
function isNumber(value) {
return (
Object.prototype.toString.call(value) == '[object Number]' &&
isFinite(value) &&
!isNaN(value)
)
}
答案 3 :(得分:0)
嗯,当谈到这些东西时,你们真的比我聪明得多。在做了一些更多的研究后,很明显,确定一个值是否是一个数字对于像我这样的普通日常程序员来说是一种深奥的东西。出于这个原因,我决定诉诸jQuery,让专业人士处理一个像这样复杂的问题。感谢您的时间。这是我希望有效的解决方案,谢谢。
function isNum(val) {
return $.isNumeric(val);
}
function isNumNotZero(val) {
return ($.isNumeric(val) && +val != 0);
}