2017-05-08 61 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

相关问题