Javascript:将String拆分为多个数组

时间:2014-01-25 16:33:39

标签: javascript arrays string

我有一个字符串,它有两组值,如下所示......

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代码?分裂函数的一些变体可能是?

提前致谢。

3 个答案:

答案 0 :(得分:0)

首先用逗号分割,然后使用for循环按下划线分割,并将所有值分配给array1(包含日期)和array2(包含日期代码)。

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]
}

答案 1 :(得分: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);

答案 2 :(得分: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]);
}