Javascript 将字符串转换为格式不正确的JS对象

Javascript 将字符串转换为格式不正确的JS对象,javascript,regex,Javascript,Regex,我的字符串格式不正确,使用JavaScript,假设数据为: {engine{type{condition},age},wheels,model{name},color} 我想把它转换成一个可用的(JS)对象。我可以使用正则表达式来解析片段,但我想知道是否有一个非正则表达式的方法可以这样做。如果你必须用正则表达式来做,那么最简单的方法是什么 转换的对象应该更像: { engine: { type: { condition: null }, age: null }, wh

我的字符串格式不正确,使用JavaScript,假设数据为:

{engine{type{condition},age},wheels,model{name},color}
我想把它转换成一个可用的(JS)对象。我可以使用正则表达式来解析片段,但我想知道是否有一个非正则表达式的方法可以这样做。如果你必须用正则表达式来做,那么最简单的方法是什么

转换的对象应该更像:

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

我还可以从一系列嵌套数组中使用它。

好吧,假设“char{”应该是“char:{”和“char”,“char}”应该是“char=null”或“char=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);
你的意思是将一个格式错误的JSON对象(只有键/没有值)转换成一个正确的JSON对象吗?是的,可能在值下面插入空值。为你的小语言编写一个小解析器。我甚至没有想到,用正确的终止符替换结束位可能会非常有效,从而避免递归函数。@Organeiccat最佳解决方案通常是最简单的(就性能而言,这基本上只是对文本的一次演练)