2012-06-20 34 views

回答

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];的東西,它不會提供所需的結果。

+0

我只是*輸入。 :-) –

+0

謝謝!這是有效的。當我看到這個字符串時,我覺得像JSON一樣,但我還沒有想到用括號替換它。 –

0

你可以通過多種方式做到這一點。你可以用方括號替換大括號,你可以自己構建一個解析器,它可以查看每個字符並跟蹤你是否打開或關閉了一個數組,或者你可以在字符串上運行多個循環,根據其中的模式分割它。

例如,第一個循環 - 分割}},{{因爲這隻發生在頂層。

第二循環 - 每個分割上},{

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,']'))+"]")); 
0

你爲什麼不只是替換此{本[這}這一],然後解析它作爲一個JSON