2014-05-13 23 views
0

좌표와 일부 공백을 포함하는 문자열이 있습니다.JavaScript : 문자열에서 좌표 추출

E.G. "SM10,10 50,50 20,10 \ nFM10,20 (30, 40)"

내가 좌표의 목록을 추출하고 싶습니다

:

["10,10", "50,50", "20,10", "10,20", "30,40"] 

을 그리고 일부 변환 수행은 (의에 의해 규모를 가정 해 봅시다 5) 다음 결과 문자열을 생성하십시오.

"SM50,50 250,250 100,50\nFM50,100 140,200" 

JavaScript에서이 변환을 수행하는 가장 좋은 방법은 무엇입니까?

+1

체크 아웃 I 게시 대답. 그것은 당신이 필요로했던 것이어야합니다. 나는 당신이 물었던 것을 할 수 있도록 이전의 대답을 업데이트했다. – aecend

답변

2

업데이트 :

이것은 당신이 필요로 정확히해야한다. 문자열의 좌표를 찾아 변경하고 시작한 형식으로 문자열을 다시 어셈블합니다. 당신이 그 뭔가를 놓쳤다 고 생각한다면 저에게 알려주십시오.

function adjust(input) { 
    var final = ""; 
    var lastIndex; 
    var temp = []; 
    var regex; 

    var coords = input.match(/\d+,\d+/g); 

    if (coords) { 
     for (i = 0; i < coords.length; i++) { 
      temp = coords[i].split(","); 

      temp[0] *= 5; 
      temp[1] *= 5; 

      regex = new RegExp("([^0-9])?" + coords[i] + "([^0-9])?","g"); 
      regex.exec(input); 

      lastIndex = parseInt(regex.lastIndex); 

      final += input.slice(0, lastIndex).replace(regex, "$1" + temp.join(",") + "$2"); 
      input = input.slice(lastIndex, input.length); 

      temp.length = 0; 
     } 
    } 

    return final + input; 
} 


이전 답 : 신속하고 효과적인 여기

:

var coords = "SM10,10 50,50 20,10\nFM10,20 30,40".match(/\d{1,2},\d{1,2}/g); 
for (i = 0; i < coords.length; i++) { 
    var temp = coords[i].split(","); 
    temp[0] *= 5; 
    temp[1] *= 5; 
    coords[i] = temp.join(","); 
} 

alert (coords.join(",")); 
+0

http://codepen.io/aecend/pen/Borsn/ – aecend