我正在制作一个简单的小费计算器,以帮助自己学习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/

10-11 01:31