我的下面的代码在有效的数学表达式时工作正常,但在表达式无效时不起作用。
HTML代码
<button id="calc">Calculate</button>
<p id="demo"></p>
jQuery代码
function myFunction() {
var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var d = eval("x + 17 + ") + "<br>"; //here it is wrong expression throw error
var res = a + b + c;
$("#demo").html(res);
}
$("#calc").click(function(){
myFunction();
});
我的问题是如何在评估表达式之前检查有效的数学表达式?
答案 0 :(得分:4)
在try / catch块中包装表达式求值,并在出现错误时提供挖掘消息:
function myFunction() {
var x = 10;
var y = 20;
var res;
try {
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var d = eval("x + 17 + ") + "<br>";
res = a + b + c;
}
catch (e) {
res = 'Expression in invalid.';
}
$("#demo").html(res);
}