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

标签 javascript regex

我的字符串格式不正确,使用 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);

关于javascript - 将字符串转换为格式不正确的 JS 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43854135/

相关文章:

javascript - 正则表达式逗号分隔的电子邮件

regex - 正则表达式匹配管道分隔字符串与管道转义

javascript - 与ng-change和select交互——改变数据源触发change

javascript - 需要创建 javascript 小部件的提示

javascript - :active pseudo class get applied 到底是什么时候

Java:匹配具有未知字符的字符串的算法

javascript - 为什么慢速 jQuery 动画断断续续?

javascript - 在选择更改时提交表单

regex - 在 Google 表格中使用数据验证只允许数字、逗号和空格

regex - 将旧域重定向到新域的主页