2017-08-28 71 views
0

我需要基於傳入json對象的字符串值創建一個動態驗證器。假設您有以下字符串:如何基於JavaScript中基於字符串的表達式返回true或false?

var required: "Homes > 0" 

在此示例中,「Homes」是我的函數中的可訪問對象。我想在邏輯上把上述分爲:

if (this.Homes > 0) { return true; } 

這個零件思考:

if (this[left] > parsed[right]) { return true; } 

我覺得你的想法。我不確定是否有一種方法可以輕鬆提取操作符,而不必爲每種類型進行切換?在:

required: "Homes = 0" // this[Left] === 0 

我正要做一個非常可怕的醜陋的字符串拆分方式與操作員上的開關盒。只是想知道是否有一種超級光滑的方式來製造這樣的功能。

+0

而不是字符串,如果你接受什麼樣的功能:'VAR需要=功能(O){返回o.Homes> 0; };'? – zerkms

+0

嗯。那麼我現在要試一試。我最初的目標是讓它在字符串格式中更友好。 – user1447679

+0

您必須編寫自己的解析器,或者使用其他人的解析器。 * eval *和* Function *構造函數使您可以訪問內置的解析器。您還可以將代碼作爲腳本節點的內容插入。拿你的選擇。 – RobG

回答

0

嘗試使用

eval("if (this.Homes > 0) { return true; }"); 
+2

EVAL從根本上不安全:( – Mikkel