2017-09-01 14 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

try { eval(apaResult); }私は同じエラーを返します... "ReferenceError:asaaは定義されていません eval" – VGranin