如何使用 isNAN 和分隔符问题



我需要找到一种方法来输入分隔符,例如,12,000 而不会收到 NaN 消息,如果无法做到这一点,则显示一条消息。我已经浏览了各种网站和StackOverflow,但无法弄清楚如何做到这一点(newbeeee问题)。当前代码如下:

<script language="JavaScript" type="text/javascript">
function calcsavings()
{
var B1=document.forms[0].B1.value;
var B2n = Number("1516");
var B2=+B2n + +B1;
var B4 = Number("0.138");
var t;
for (i=0; i<document.forms[0].ITR.options.length; i++)
{
if (document.forms[0].ITR.options[i].selected)
t = document.forms[0].ITR.options[i].value;
}
var result=(B1/t-(B2/(1+B4)))*t
result=Math.round(result);
document.getElementById("childcaresavings").innerHTML=result;
}
</script>

我已经删除了我在发布之前尝试过的非工作代码。

result添加NaN检查有什么问题吗?

result=Math.round(result);
var htmlContent = Number.isNaN(result) ? "not a valid number" : result;
document.getElementById("childcaresavings").innerHTML=htmlContent ;

编辑:如果您正在寻找解析的随意使用。您可以只使用全局replace,它将删除除数字和句点以外的任何内容。

if (document.forms[0].ITR.options[i].selected) {
  var inputVal = document.forms[0].ITR.options[i].value;
  var removedCommas = inputVal.replace(/[,]/g, "")
  if (removedCommas[0] === "£") {
    removedCommas = removedCommas.slice(1, removedCommas.length)
  }
  t = removedCommas
}

这样做:它会接受您的输入并删除所有逗号和 £(如果它是输入中的第一个字符)。假设您的用户输入一个合理的条目,它将按预期处理该数字。如果您的使用输入任何奇怪的内容,例如/ * & #等,NaN将被返回并显示您的错误。

最新更新