我下面的代码在有效的数学表达式时工作完美,但在表达式无效时不起作用。
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();
});
我的问题是如何在计算表达式之前检查有效的数学表达式?
最佳答案
在 try/catch block 中包装表达式评估,并在出现错误时提供有用的消息:
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);
}
关于javascript - 如何在评估前检查有效表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27646870/