相关疑难解决方法(0)

在JavaScript中验证十进制数 - IsNumeric()

在JavaScript中验证十进制数的最干净,最有效的方法是什么?

奖励积分:

  1. 明晰.解决方案应该干净简单.
  2. 跨平台.

测试用例:

01. IsNumeric('-1')      => true
02. IsNumeric('-1.5')    => true
03. IsNumeric('0')       => true
04. IsNumeric('0.42')    => true
05. IsNumeric('.42')     => true
06. IsNumeric('99,999')  => false
07. IsNumeric('0x89f')   => false
08. IsNumeric('#abcdef') => false
09. IsNumeric('1.2.3')   => false
10. IsNumeric('')        => false
11. IsNumeric('blah')    => false
Run Code Online (Sandbox Code Playgroud)

javascript validation numbers

2318
推荐指数
19
解决办法
145万
查看次数

从Javascript中的Object中删除空白属性

如何删除这些都是属性undefinednull在JavaScript对象?

(问题类似于这个阵列)

javascript

208
推荐指数
20
解决办法
17万
查看次数

在Javascript中比较NaN值是否相等

我需要在Javascript中比较两个数值相等.值也可以NaN.我想出了这段代码:

if (val1 == val2 || isNaN(val1) && isNaN(val2)) ...
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它看起来很臃肿.我想让它更简洁.有任何想法吗?

javascript comparison equality nan

61
推荐指数
6
解决办法
5万
查看次数

我如何测试NaN?

可能重复:
在Javascript中比较NaN值是否相等

谁能告诉我为什么这不起作用?

if(inbperr == NaN){
document.getElementById('inbclo').value = "N/A";
}
else{
document.getElementById('inbclo').value = "%" + inbperr;
}
Run Code Online (Sandbox Code Playgroud)

而不是返回一个百分比值或"N/A",就像我想要它返回"%NaN".

javascript if-statement nan

46
推荐指数
1
解决办法
4万
查看次数

你如何在JavaScript中测试NaN?

我有一个变量x,我想测试x是否设置为NaN.我怎么做?

我的第一直觉可能就是测试它,就像这样:

if (x === NaN) {  ...
Run Code Online (Sandbox Code Playgroud)

傻兔子,不,这太容易了.NaN在SQL中就像NULL,它不等于任何东西,甚至本身.

但是看,有一个叫做的函数isNaN()- 也许会这样做!

不,据我所知,isNaN()完全没有价值.

例如,isNaN([""])正确返回false,但isNaN(["."])返回true.你不想知道我是如何了解这个缺陷的.

我该怎么做呢?

事实证明,我的问题与问题重复,但所选答案是错误的.将正确的答案有20%之多upvotes.

javascript nan

39
推荐指数
2
解决办法
4万
查看次数

JavaScript - 检查变量是否为数字:typeof不起作用,isNaN

我目前面临一个问题,可能很简单,但我的研究中没有发现任何问题......

我想检查(在JavaScript中)变量是一个数字,如果它高于100或低于0.

我试过这个:

if ((returnValue > 100) || (returnValue < 0) || (typeof returnValue != 'number')) { 
    //not correct
} else {
 // let's do some stuff here
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用...当我举例如数字50(这是好的),发生在"如果"而不是在"其他"按预期发生!

所以我做了 :

if ((returnValue > 100) || (returnValue < 0) || (isNaN(returnValue)))
Run Code Online (Sandbox Code Playgroud)

然后我注意到它完美有效!

我也知道我可以将它分成两部分,首先测试变量是否为数字,然后测试是否大于100或小于0,但这不是我目前正在寻找的;)

你能否解释一下为什么第一次尝试不起作用(和/或让它起作用)?

谢谢 !

javascript numbers typeof

2
推荐指数
1
解决办法
2634
查看次数

检查给定变量的最佳方法是NaN与否?

检查给定变量的最佳方法是NaN与否?

(仅使用没有任何库(如Underscore)的纯Javascript)

javascript

0
推荐指数
1
解决办法
105
查看次数

parseInt()检查NaN无法正常工作

我正在研究一个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 number
        val = parseInt(val);
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,同时测试,即使val是与文本字符串,它仍然会返回parseInt(val) !== NaN作为true.我后来使用Chrome控制台进行了测试,这就是我得到的:

回报不正确

如你所见,'asf'Not-a-Number.但无论它返回什么地方true,它都应该返回false,无论它返回什么地方false,它都应该返回true.您还可以看到我测试过以确保NaN其实际上不是字符串.

正确的回报

上面你可以看到返回值是相同的,但这次它是正确的.

我错过了什么吗?或者我应该采用不同的方式做到这一点?

javascript

-1
推荐指数
1
解决办法
620
查看次数

如果输入值为NaN,则返回零

有最好的预防方法NaN吗?我有数字输入字段,每当我清除字段时,我得到NaN.

_amount: function(e) {
  var value = parseInt(e.target.value);
  var newValue = (value === NaN ? 0 : value); // Thought this could work
},

<input type="number" value={this.state.amount} onChange={this_amount} />
Run Code Online (Sandbox Code Playgroud)

现在在我的渲染中我有400 - this.state.amount.事情是,当我清除输入字段时,金额状态是null.怎么预防这个?有可能当我清除该字段时我得到零吗?假设我输入3然后清除该字段,NaN弹出.

谢谢

javascript math nan reactjs

-3
推荐指数
1
解决办法
3688
查看次数