簡體   English   中英

javascript使用正則表達式在多個字段上拆分字符串

[英]javascript split string on multiple fields using regex

我正在嘗試在我的JavaScript中建立方便的dsl-ish查詢功能。

給出:

var query = "lastName = 'smith' and firstName = 'jack' or city = 'vancouver'";

將此sql-esque字符串解析為可用對象的最優雅方法是什么,例如:

[
{
 field:'lastName',
 operator:'=',
 value:'smith',
 join:'and'
},
{
 field:'firstName',
 operator:'=',
 value:'jack',
 join:'or'
},
{
 field:'city',
 operator:'=',
 value:'vancouver'
}
]

在我開始無可救葯地循環之前,我認為會有一些正則表達式主目錄具有單線。

創建一個語法(EBNF或BNF),然后為其編寫一個解析器。 您不僅會留下更多的頭發(如果嘗試使用正則表達式,最終將把頭發拉出來!),您還將學到一些新奇而有趣的方法:)。

如果編寫遞歸下降解析器,則可以輕松地將查詢表示為樹。

這是一個EBNF,可以幫助您入門:

query            ::= criterion { criterion }
criterion        ::= boolean-operator { filter }
boolean-operator ::= "not" | "or" | "and"
filter           ::= variable, "=", value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM