Jquery 如何从表单结果中去除isNaN?
我正在制作一个小计算器。这将允许您输入多达4个数字,但您也可以输入1、2或3个数字。我已经让代码正常工作了,除了当我只输入1、2或3个数字时,对于我没有输入的数字,我会得到一个NaN结果 我该如何摆脱NaN结果 我的jQuery用于拆分输入的表单数据是-Jquery 如何从表单结果中去除isNaN?,jquery,calculator,nan,Jquery,Calculator,Nan,我正在制作一个小计算器。这将允许您输入多达4个数字,但您也可以输入1、2或3个数字。我已经让代码正常工作了,除了当我只输入1、2或3个数字时,对于我没有输入的数字,我会得到一个NaN结果 我该如何摆脱NaN结果 我的jQuery用于拆分输入的表单数据是- var numbers = num4.split(" "); var firstNumber = parseInt(margins[0], 10), secondNumber = parseInt(margins
var numbers = num4.split(" ");
var firstNumber = parseInt(margins[0], 10),
secondNumber = parseInt(margins[1], 10),
thirdNumber = parseInt(margins[2], 10),
fourthNumber = parseInt(margins[3], 10);
console.log(firstNumber, secondNumber, thirdNumber, fourthNumber);
var shorthand1 = parseInt (firstNumber, 10) * 1;
var shorthand2 = parseInt (secondNumber, 10) * 1;
var shorthand3 = parseInt (thirdNumber, 10) *1;
var shorthand4 = parseInt (fourthNumber, 10) *1;
我只是
shorthand1 + shorthand2 + shorthand3 + shorthand4
结果显示在页面上的div中
问题是如果我输入“10”而没有输入第四个数字,我会得到一个结果
10 10 10 NaN
我可以检查NaN而不处理结果吗?您可以使用Javascript
isNaN(value)
函数检查值是否为NaN。您可以在js中检查isNaN()
请注意,isNaN()函数只检查值的“数值性质”,而不检查值是否是有限的。要检查一个数字是否是有限的,您应该改为使用JavaScript的isFinite()。函数isNaN()
确定一个值是否为非法数字(非数字)
如果值为NaN,则此函数返回true,否则返回false
<script type="text/javascript">
document.write(isNaN(123)+ "<br />");
document.write(isNaN("Hello")+ "<br />");
document.write(isNaN(NaN)+ "<br />");
</script>
编写(isNaN(123)+“
”;
写(isNaN(“你好”)+“
”;
文件。写入(isNaN(NaN)+“
”;
输出:假
正确
真的
对于您的情况,您可以进行如下检查:
<html>
<body>
<script type="text/javascript">
if(!isNaN(123)){
document.write(isNaN(123)+ "<br />");
}
if(isNaN("Hello")){
document.write(isNaN("Hello")+ "<br />");
}
</script>
</body>
</html>
如果(!isNaN(123)){
编写(isNaN(123)+“
”;
}
如果(伊斯南(“你好”)){
写(isNaN(“你好”)+“
”;
}
如果没有数字或文字,这是否有效?所以,如果他们只输入10而不是10,那么就不会产生10 NaN NaN?无论如何,在您的情况下,parseInt将返回NaN作为空值。看看这个Sudhur是对的-isFinite在NaN上检测并返回false。parseInt返回您找到的NaN。此外,我建议您在拆分之前检查数字数组的长度。如果有人输入“10”,数组将缺少一个元素和数字。length将告诉您这一点。您可以指定填充值,将错误返回给用户,或者以您认为合适的方式处理它。