解析以检查NAN Javascript

时间:2016-08-24 13:06:37

标签: javascript parsing if-statement

我有一个onclick甚至设置为取值输入并在值为数字时发出警报。如果输入的值是空白的,我试图提醒它说“No Number”,但是,似乎即使我的输入为空,该函数返回一个语句,说“空”值确实是一个数字。

我已设置变量以立即解析输入的值,但这就是为什么我的代码总是返回“是一个数字”,因为它在收集变量时自动设置为1?

代码:

HTML:

<input type="text" id="numberTest" />

<button id="button">Click Me</button>

JS:

var button = document.getElementById("button");

button.onclick = function()
{
var numberTest = parseInt(document.getElementById("numberTest").value);

if(numberTest == NaN || "" || null)
{
    alert("No Number");
}
else
{
    alert("This is a number!");
}
};

3 个答案:

答案 0 :(得分:4)

检查IF($DataSet.Tables["Table"] -isnot $null){ $DataSet.Tables["Table"] | Export-Csv $034CASHOUT -NoTypeInformation echo "CL2 Exported" } else { $headerText = ('"Client","Balance","Account"' + "`n") New-Item $034CASHOUT | Add-Content -value $headerText } 是否始终返回== NaN。正确的方法是使用Number.isNaN()

false

您在var button = document.getElementById("button"); button.onclick = function() { var numberTest = parseInt(document.getElementById("numberTest").value); if (Number.isNaN(numberTest) || numberTest == "" || numberTest === null) { alert("No Number"); } else { alert("This is a number!"); } }; 中的逻辑也存在一些问题 - 每个子句都是一个单独的表达式,因此每次都需要检查if

答案 1 :(得分:2)

尝试使用isNaN()方法:

isNaN(numberTest)

而不是

numberTest == NaN

根据NaN documentation,NaN永远不等于NaN,因此 NaN == NaN NaN === NaN 将始终返回false ... < / p> 顺便说一下,你应该改变一下:

if(numberTest == NaN || "" || null)

到此:

if(isNaN(numberTest) || numberTest == "" || numberTest == null)

因此您始终将您的变量与某些值进行比较。

答案 2 :(得分:1)

这是了解数值是否为数字的另一种方法

function IsANumber(numberToValidate) {
   return $.isNumeric(numberToValidate.replace(",", "").replace(".", ""));
} 
$("[id^=YourIDButton]").click(function(){
    if(IsANumber($(this).val())){
       alert("This is a number!");
    }else{
       alert("No number");
    }
}