2014-01-24 25 views
0

我使用JavaScript。我想解析和評估條件表達式。 例如:javascript條件表達式分析器

var param1=1; 
    var param2=2; 
    var param3=3; 
    var expression="(param1==param2)||(param3<param1)"; 

我想寫這將接受「表達」作爲輸入和解析表達式以及評估表達式並返回評價結果中的函數。

請讓我知道任何建議。

在此先感謝。

+0

爲什麼不有一個函數表達式作爲輸入? 「條件表達式」從哪裏來?你想要什麼語法? – Bergi

+0

在我的應用程序用戶手動輸入條件表達式,因此它應該評估。 – user1755390

+0

這些表達式僅用於輸入它們的用戶嗎?如果不是,你不應該使用'eval'和co,intead使用解析器並手動評估它們。語法應該是相當微不足道的。 – Bergi

回答

1

這是邪惡的一個:eval();

var param1=1; 
var param2=2; 
var param3=3; 
var expression=eval("(param1==param2)||(param3<param1)"); 

然後你的函數來了,

function myEvaluator(s) { 
    return eval(s); 
} 

您必須在表達公共變量。

+0

eval函數對條件表達式的預期效果不佳。 var expression = eval(1 == 2)它返回true而不是false。 – user1755390