2017-09-01 65 views
0

使用eval来计算字符串。有什么方法可以检查传递给EVAL()的数据是否有效。检查评估等式

var apa = "12/5*9+9.4*2"; 
alert(eval(apa)); 

如果APA = “的asAA + 3 - 5”;例如,控制台会说

Uncaught ReferenceError: asaais not defined at eval

+0

定义“有效”。 –

+1

我想你可以检查它是否抛出。 – lilezek

+0

您可以解析它....在运行之前无法知道它是有效的。你可以... – epascarello

回答

1

只要检查评估结果是否先未定义。如果是这样,表达无效。

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

但是在控制台中出现错误“ReferenceError:asaa没有定义”。或者没有办法摆脱这个? – VGranin

+0

你可以在try catch块中包装eval。 [jsfiddle](https://jsfiddle.net/z27my96g/) –

+0

尝试eval(apaResult); }给了我同样的错误...“ReferenceError:asaa没有定义 在eval” – VGranin