2014-01-25 83 views
2

我有具有兩組象下面值的字符串...使用Javascript:將字符串分割爲多個陣列

12/31/13_69,01/01/14_30,01/03/14_195,01/07/14_169 

首先是一個日期,第二個是該日期的值。我基本上想從這個字符串創建2個數組(對於一個Highcharts圖)。一個日期的數組,像下面值的另一個數組...

{12/31/13,01/01/14,01/03/14,01/07/14} 
{69,30,195,169} 

能否請您與我分享的Javascript代碼我可以用它來創建此?拆分函數的一些變體可能?

在此先感謝。

+1

你需要用','分割,然後循環遍歷結果,再用'_'分割。或者使用正則表達式。別。 –

+0

先試一試;然後尋求幫助。 – brouxhaha

回答

0

你總是可以使用regular expression

var str = '12/31/13_69,01/01/14_30,01/03/14_195,01/07/14_169', 
    dates = str.match(/\d{2}\/\d{2}\/\d{2}/g), 
    vals = str.match(/\d+(?=,|$)/g); 
+0

謝謝大家的回覆,你的使者看起來是最簡單的,所以我決定去用它。再次感謝! – AbuMariam

0

這將首先由逗號分割,然後使用for循環通過下劃線拆分並分配所有的值以ARRAY1(包含日期)和數組2(包含日期代碼)。

var ms = "12/31/13_69,01/01/14_30,01/03/14_195,01/07/14_169" 

var arr = ms.split(",") 

var array1 = new Array() 
var array2 = new Array() 

var temp = "" 

for(i=0; i<arr.length; i++) 
{ 
    temp=arr[i].split("_") 

    array1[i] = temp[0] 
    array2[i] = temp[1] 
} 
0

您可以使用RegExp.prototype.exec()找到連續比賽。

var results = { dates: [], values: [] }, 
    s = '12/31/13_69,01/01/14_30,01/03/14_195,01/07/14_169', 
    regex = /(\d{2}\/\d{2}\/\d{2})_(\d+),?/g, 
    result; 

while ((result = regex.exec(s)) !== null) { 
    results.dates.push(result[1]); 
    results.values.push(result[2]); 
}