我有一个字符串{{1,2},{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}} 我需要得到一对{number,number}对的数组。
最好的方法是什么?
答案 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