2013-11-15 115 views
1

我有一個字符串像以下:Javascript字符串分割

var str = '35,35,105,105,130,208,50,250'; 

我想拆分此字符串,並得到這樣的:

var arr = [[35,35],[105,105],[130,208],[50,250]]; 

我嘗試了一些辦法,但他們都不給我任何事情。我嘗試循環查找偶數的逗號位置和分割,但這對我來說並不好。請給我一些建議。我在尋找RegEx解決方案。

+3

它*有*爲'RegEx'嗎? – rid

回答

5

一個可行的方法:

'35,35,105,105,130,208,50,250'.match(/\d+,\d+/g).map(function(s) { 
    return s.split(','); 
}); 

在一行中的另一個瘋狂的想法:

JSON.parse('['+ '35,35,105,105,130,208,50,250'.replace(/\d+,\d+/g, '[$&]') +']'); 
+1

需要2維數組 –

+0

@ArunPJohny是的,我不小心使用'filter'而不是'map'。 – VisioN

+1

如果字符串包含奇數個逗號分隔值,則此方法將截斷最後一個值。 – nderscore

1

下面是做到這一點的方法之一。

var values = str.split(','), 
    output = []; 
while(values.length) 
    output.push(values.splice(0,2)); 

如果str包含奇數個值,在輸出最後陣列將僅包含一個使用該方法的價值。