Javascript 验算公式

Javascript 验算公式,javascript,eval,Javascript,Eval,使用eval计算字符串。有没有办法检查传递给EVAL()的数据是否有效 var apa = "12/5*9+9.4*2"; alert(eval(apa)); 如果apa=“asaa+3-5”;例如,控制台会说 未捕获引用错误:评估时未定义ASAAI 只需首先检查评估结果是否未定义。如果是,则表达式无效 var apa = "12/5*9+9.4*2"; var apaResult = eval(apa); if (apaResult != undefined) { alert(apa

使用eval计算字符串。有没有办法检查传递给EVAL()的数据是否有效

var apa = "12/5*9+9.4*2";
alert(eval(apa));
如果apa=“asaa+3-5”;例如,控制台会说

未捕获引用错误:评估时未定义ASAAI


只需首先检查评估结果是否未定义。如果是,则表达式无效

var apa = "12/5*9+9.4*2";
var apaResult = eval(apa);
if (apaResult != undefined) {
    alert(apaResult);
} else {
    alert("Could not evaluate expression")
}

定义“valid”。我想你可以检查它是否抛出。你可以解析它。。。。在运行它之前,无法知道它是否有效。如果您要检查有效性(这意味着您将使用解析器),那么就没有理由使用
eval
。但这会在控制台中产生错误,“ReferenceError:asaa未定义”。或者没有办法解决这个问题?你可以用try-catch块包装eval。试试{eval(apaResult);}给我同样的错误。。。“ReferenceError:评估时未定义asaa”