2017-05-08 65 views
1

我的字符串格式不正確,使用JavaScript一個JS對象,讓我們說的數據是:將一個字符串轉換成未格式化正確

{engine{type{condition},age},wheels,model{name},color} 

而且我想將其轉換成可用(JS)目的。我可以使用正則表達式來分析部分,但我想知道是否有一個非正則表達式方法。如果你必須用正則表達式來做,那麼最簡單的方法是什麼?

轉換的對象應該是更象:

{ 
engine: { 
    type: { 
    condition: null 
    }, 
    age: null 
}, 
wheels: null, 
model: { 
    name: null 
}, 
color: null 
} 

我也用它從一系列嵌套數組的工作。

+0

你的意思轉換的鑰匙只/沒有值的形成不良的JSON對象到合適的JSON對象? – ThisClark

+0

是的,可能在值的下面插入空值。 – Organiccat

+0

爲你的小語言寫一點解析器。 – 2017-05-08 18:09:22

回答

1

好了,假設說,「焦下{」應爲「字符:{」和「字符」或「字符}」應爲「字符=空」或「字符= NULL}」,這是一個非常簡單的查找和替換。否則,您可能不得不使用遞歸解析函數來將其拆分並重新放回。

var str = "{engine{type{condition},age},wheels,model{name},color}" 
 
str = str.replace(/([A-z])\s*{/g, "$1:{") 
 
str = str.replace(/([A-z])\s*([},])/g, "$1:null$2") 
 
console.log(str);

+0

我甚至沒有想到的是,在適當的終結更換結束位可能會工作得很好,並避免遞歸函數。 – Organiccat

+0

@Organiccat最好的解決方案往往是最簡單的(性能方面,這基本上只是文本的一個步驟) – Tezra

相關問題