Javascript parseInt()检查是否存在NaN isn';t工作不正常
我正在开发一个jQuery插件,我需要确保这个值是一个数字,或者是一个只有一个数字的字符串。为此,我编写了以下代码,其中Javascript parseInt()检查是否存在NaN isn';t工作不正常,javascript,Javascript,我正在开发一个jQuery插件,我需要确保这个值是一个数字,或者是一个只有一个数字的字符串。为此,我编写了以下代码,其中val是一个变量,可能是数字,也可能不是数字 if (typeof val !== 'number') {//if "val" isn't a number if (typeof val === 'string' && parseInt(val) !== NaN) {//see if "val" is a string with only a numbe
val
是一个变量,可能是数字,也可能不是数字
if (typeof val !== 'number') {//if "val" isn't a number
if (typeof val === 'string' && parseInt(val) !== NaN) {//see if "val" is a string with only a number
val = parseInt(val);
}
}
但是由于某种原因,在测试时,即使val
是一个包含文本的字符串,它仍然返回parseInt(val)!=NaN
为true
。我后来用Chrome控制台进行了测试,结果如下:
正如您所看到的,'asf'
是而不是-a-Number
。但是无论它在哪里返回true
,它都应该返回false
,无论它在哪里返回false
,它都应该返回true
。您还可以看到,我进行了测试,以确保NaN
实际上不是字符串
上面可以看到返回值是相同的,但这次是正确的
我错过什么了吗?或者有没有其他的方法可以让我做到这一点?你无法与之相比。 您需要使用:
isNaN(parseInt('asf')//true
isNaN(parseInt('123')//false
检查值是否为数字的最佳解决方案是使用。您有没有研究过?@Evilzebra我不知道这个存在。非常感谢。检查它的方法是isNaN()
method也是相关的,为什么我希望你的声誉随着这个简单的答案快速增长。令人惊叹的恭喜。