我有随机表达,由用户给出(例如:2 + 3 * 5,21 * +(4)7,* - 54 + 3 )。这些表达式可以包含任意数量的操作数或运算符来形成表达式。我需要评估这些表达式以获得答案。我试图使用 eval()函数进行评估,但问题是当错误的表达式是传递给 eval()函数它会抛出一个错误并且程序停止。我试过了
if(eval(exp))
{
//Action Expression is evaluatable
}
else
{
//expression is not Evaluatable
}
但没有奏效并产生错误信息
"SyntaxError: unterminated regular expression literal."
由于表达方式的多样性和在评估之前,我很难构建检查陈述 你能建议我如何简单地检查传递给eval()函数的表达式是否正确?
答案 0 :(得分:4)
抓住错误:
try {
eval(exp);
} catch (e) {
if (e instanceof SyntaxError) {
alert(e.message);
}
}
答案 1 :(得分:-1)
您可以尝试将脚本的内容放入"脚本"动态标记,然后检查错误函数的返回。或者在脚本末尾定义一个变量,并在执行后检查它是否存在。
或者mayber你可以在这里找到答案:https://stackoverflow.com/a/9522483/2007701 !!