2012-07-29 32 views
5

如何解析用戶輸入的字符串並將其重新編譯爲JavaScript條件語句。解析JavaScript條件語句的用戶輸入

例如,如果用戶輸入follwing串入一個texbox

x==1 && y==2 || (z!=3) 

我怎樣才能創建此字符串執行JavaScript

if (vars['x'] == 1 && vars['y'] == 2 || (vars['z'] != 3)) 

我的應用程序是建立在節點下面的服務器端.js如果該信息有幫助。我知道eval()函數,但在評估之前,我需要首先從用戶表達式中獲取變量。

這對於正則表達式來說似乎太複雜了。如果有人知道一個簡單的解析器可以完成這樣的事情,那將會很棒。

+0

爲什麼'y = 2'?也想想安全。 – 2012-07-29 02:37:56

+0

安全將是一個殺手,儘管逃避'''和沙盒它應該是足夠的。 – 2012-07-29 02:52:37

回答

4

Esprima是很酷:http://esprima.org/

可以在節點或在瀏覽器中運行它。

+0

這看起來不錯。感謝分享。 – 2012-07-29 02:41:34

+0

感謝分享 – v1r00z 2014-09-16 21:41:34