解析javascript {{1,2},{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}}

时间:2012-06-20 12:17:36

标签: javascript regex parsing

我有一个字符串{{1,2},{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}} 我需要得到一对{number,number}对的数组。

最好的方法是什么?

4 个答案:

答案 0 :(得分:5)

由于输入几乎与数组语法类似,因此您可以使用方括号替换所有花括号以获取有效数组:

var string = '{{1,2}, {2,3}}';
JSON.parse(string.replace(/}/g, ']').replace(/\{/g, '['));
// >>> [[1,2],[2,3]]

请注意,我使用JSON.parse来解析字符串 如果您的输入包含多个以逗号分隔的{..},请添加其他大括号:'[' + .. + ']'。否则,您会收到类似result = [1,2],[4,5];的内容,但不会提供所需的结果。

答案 1 :(得分:0)

你可以通过各种方式做到这一点。您可以用方括号替换大括号,您可以自己构建一个解析器,查看每个字符并跟踪您是打开还是关闭数组,或者您可以在字符串上运行多个循环,根据其中的模式将其拆分。

EG。第一个循环 - 拆分}},{{因为这只发生在顶层。

第二个循环 - 每个分开},{

答案 2 :(得分:0)

console.log(JSON.parse("["+("{{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}}"
    .replace(/{/g,'[').replace(/}/g,']'))+"]"));

答案 3 :(得分:0)

为什么不用这个替换这个[和this [和this}],然后将其解析为json