我正在制作一个简单的小费计算器,以帮助自己学习Javascript。我无法解决的问题是如何补偿“输入错误”。
在下面的代码中,如果用户在数字输入金额的前面加上美元符号$
,则结果为NAN
。
function tipAmount(){
var dinner=prompt("How much was dinner?");
result = dinner*.10;
alert("Your tip is " +"$"+result );
}
我该如何解决。
最佳答案
您可以尝试使用正则表达式解析出数值:
var match = dinner.match(/\d+\.?\d*/); // parse with a regular expression
if(!match) { // not able to parse
alert("wrong");
}
var price = +match[0]; // convert to a number
result = price * .10;
正则表达式
/\d+\.?\d*/
的含义是:一个或多个数字,并且可能还有一个后面跟有其他数字的点。这意味着如果dinner
是"$1.23"
,price
将是数字1.23
。 "$ 1.23"
或"1.23 dollar"
等也一样-数字将使用正则表达式定义的模式进行解析。关于javascript - 新手Javascript查询输入错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8540263/