2014-01-25 5 views
2

나는 다음과 같은 값의 두 세트를 가지고 문자열 ...자바 스크립트 : 여러 배열로 문자열을 분할

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

첫 번째는 날짜이고 두 번째는 해당 날짜의 값입니다 있습니다. 기본적으로이 문자열 (Highcharts 그래프)에서 2 개의 배열을 만들고 싶습니다. 한 날짜의 배열 아래 같은 값의 또 다른 배열 ...

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

당신은 나와 함께 내가 이것을 만드는 데 사용할 수있는 자바 스크립트 코드를 공유 주시겠습니까? 분할 함수의 일부 변형은 어쩌면?

미리 감사드립니다.

+1

','로 분할 한 다음 결과를 반복하고 '_'로 다시 분할해야합니다. 또는 정규식을 사용하십시오. 하지마. –

+0

먼저 시도해보십시오. 그런 다음 도움을 요청하십시오. – brouxhaha

답변

0

당신은 항상 regular expression 사용할 수 있습니다.

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]); 
} 
+0

귀하의 답변에 모두 감사드립니다, Emissary 당신이 가장 간단하게 보이기 때문에 나는 그걸로 가기로 결심했습니다. 다시 한 번 감사드립니다! – AbuMariam

0

먼저 쉼표로 분리 한 다음 for 루프를 사용하여 밑줄로 분리하고 모든 값을 array1 (날짜 포함) 및 array2 (날짜 코드 포함)에 할당합니다.

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

당신은 연속적인 상대를 만나 RegExp.prototype.exec()를 사용할 수 있습니다

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] 
} 
관련 문제