我需要找到一种输入分隔符的方法,例如,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>
我在发布之前删除了我尝试过的非工作代码。
答案 0 :(得分:0)
为NaN
添加result
支票有什么问题吗?
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
并显示您的错误。