最快的正则表达式将包含代码的字符串拆分为var和值的各个键值对

时间:2013-06-04 04:11:57

标签: javascript jquery regex

我有一些javascript代码,

"var obj1 = { width : 120;height    : 80;length : 0;};var obj2 = {width : 80;height     : 10;length : 30;};"

我想把它吐成一个像

这样的键值对的对象
{
  "obj1": "width   : 120;height  : 80;length  : 0;",
  "obj2": "width : 80;height  : 10;"

}   

/^(\"[^"]*\"|.*?)=(\"[^"]*\"|.*?)$/是找到它们的最快方法吗?

1 个答案:

答案 0 :(得分:0)

我已经看到很多关于SO的问题,当RegEx从性能角度来看是一种过度杀伤时,用户要求Regex满足需求。

对您的问题的简短回答:

  

1)RegEx不是为解析JSON响应而设计的。 (不要使用它)

     

2)使用JSON Parser根据您的需要塑造您的响应。 (如果你想要好的表现)

但是如果您仍然认为您必须使用RegEx(出于某种原因)或解析JSON将导致您进行比RegEx更多的额外工作。

您可以使用此RegEx:

(\w+)\s(?:\=\s{)([\w\s\:;]+)(?=})

Here每场比赛将有两组:

执行以下操作:

  

1)用each group match(双引号)包裹"

     

2)使用groups

加入:      

3)用matches{包裹}

希望它有所帮助!