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

标签 javascript eval

我有用户给出的随机表达式(例如: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() 函数的表达式是否正确?

最佳答案

捕获错误:

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

关于javascript:检查表达式是否可评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804025/

相关文章:

javascript - 完美的 JavaScript 语法在 Eval() 中创建错误

javascript - 如何在网页上多次使用JavaScript生成的类?

javascript - anchor ng-click 调用 2 个方法

javascript - 显示更多文字 :response coming in the form of json

javascript eval 内在限制?

javascript - javascript eval 可能会带来哪些问题

javascript - 根据其他元素添加和删除类

javascript - 在 QML 中加载页面时运行 javascript 函数

javascript - 将 "eval"定义为 Function 构造函数调用的形式参数。这不应该在严格模式代码中引发语法错误吗?

javascript - 我应该插入 <script> 还是应该评估?