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。或者在脚本末尾定义一个变量,并在执行后检查它是否存在。
或者您可以在这里找到回复: !!
我有用户给出的随机表达式(例如: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。或者在脚本末尾定义一个变量,并在执行后检查它是否存在。
或者您可以在这里找到回复: !!