我正在創建基於JSON和JavaScript的DSL,並且我要求將鍵值指定爲'原始'並且不包含在字符串分隔符中。一個簡單的例子是希望解釋這一點:在解析到對象之前手動解析JSON
{myKey:custom_function('arg1'), myKey2:custom_function("another arg1")}
應該成爲
{myKey:"custom_function('arg1')", myKey2:"custom_function(\"another arg1\")"}
這是因爲在解析JSON對象時,custom_function將不存在。我需要能夠解析JSON而無需評估任何值,然後只在迭代密鑰時逐個擴展值。
可以使用什麼正則表達式或其他方法將第一個片段轉換爲第二個片段?
我假設一個更簡單的解決方案將覆蓋90%的案例,但是編寫一個防彈實施需要花費很大的精力。基於我對JavaScript的正則表達式支持的研究(顯然沒有lookbehind功能),我假設它需要的不僅僅是1或2行的正則表達式模式。
此外,這是一個節點應用程序,所以它的任何技巧也將有所幫助。
編輯:
這個問題似乎得到一些downvotes,但我已經離開它,無論如何,未來的Google /我自己參考的利益。這是關於什麼方法/技術將工作最適合這樣的問題,而且有可能很容易地面對誰的類似問題的其他節點/ JS新人一個完全有效的問題。
我很抱歉,但是,什麼是DSL? –
域名特定語言。這是一個複雜的商業案例,用戶有一項功能可以讓他們編寫腳本來指導應用程序。 – Trindaz
我覺得downvotes是由於您的DSL是一個混合JSON樣機,不使那麼多的意義而不是隻使用JSON作爲您的DSL。與管理層的DSL應該僅僅是JSON標準爭論,點即是更容易維護,面向未來的,更容易實現,啦啦啦。 – balupton