我有一個像{{1,2} ,{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}} 我需要獲得一組數組{數組,數字}。解析javascript {{1,2},{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}}
這樣做的最佳方法是什麼?
我有一個像{{1,2} ,{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}} 我需要獲得一組數組{數組,數字}。解析javascript {{1,2},{3,4}},{{1.1,1.2},{1.0,1.0},{1.3,1.3}}
這樣做的最佳方法是什麼?
由於輸入幾乎看起來像數組語法,你可以替換方括號所有大括號來獲得一個有效的數組:
var string = '{{1,2}, {2,3}}';
JSON.parse(string.replace(/}/g, ']').replace(/\{/g, '['));
// >>> [[1,2],[2,3]]
注意我用了JSON.parse
解析字符串。
如果您的輸入包含多個用逗號分隔的{..}
,請添加其他大括號:'[' + .. + ']'
。否則,你會得到類似result = [1,2],[4,5];
的東西,它不會提供所需的結果。
我只是*輸入。 :-) –
謝謝!這是有效的。當我看到這個字符串時,我覺得像JSON一樣,但我還沒有想到用括號替換它。 –
你可以通過多種方式做到這一點。你可以用方括號替換大括號,你可以自己構建一個解析器,它可以查看每個字符並跟蹤你是否打開或關閉了一個數組,或者你可以在字符串上運行多個循環,根據其中的模式分割它。
例如,第一個循環 - 分割}},{{因爲這隻發生在頂層。
第二循環 - 每個分割上},{
console.log(JSON.parse("["+("{{1,2},{3,4}}, {{1.1,1.2},{1.0, 1.0}, {1.3,1.3}}"
.replace(/{/g,'[').replace(/}/g,']'))+"]"));
你爲什麼不只是替換此{本[這}這一],然後解析它作爲一個JSON
你想要獲得一個2D數組? –
http://WhatHaveYouTried.com – 2012-06-20 12:20:24
你是誰創造的字符串?還是來自其他地方? – phenomnomnominal