javascript:检查表达式是否可评估?

javascript: check whether expression is evaluatable or not?

我有用户给出的随机表达式(例如:2+3*5,21*+(4)7,*-54+3)。这些表达式可以包含任意数量的操作数或运算符以形成 expression.I 需要评估这些表达式以获得 Answer.I 试图使用 eval() 函数进行评估但是问题是当一个错误的表达式被传递给 eval() 函数时它会抛出一个错误并且程序 halt.I 尝试了它

if(eval(exp))
{    
    //Action Expression is evaluatable
}
else
{
    //expression is not Evaluatable
}

但没有成功并产生了错误消息

"SyntaxError: unterminated regular expression literal."  

由于表达式的性质多种多样,我很难在求值前构造检查语句。
你能建议我如何简单地检查传递给 eval() 函数的表达式是否正确吗?

捕获错误:

try {
        eval(exp); 
    } catch (e) {
        if (e instanceof SyntaxError) {
            alert(e.message);
        }
    }

你可以试试把你脚本的内容动态的放在"script"标签里,然后查看error函数的return。或者在脚本末尾定义一个变量,并在执行后检查它是否存在。

或者您可以在这里找到回复: !!