자바스크립트 문자열 치환

개발/코딩 2020. 4. 24. 11:31

GIS 개발을 하다가 좌표값을 db에 저장했는데  문자열을 치환해야하는 경우가 생겼다.

 

14102895.763908967,4224317.671008111,14102432.364424989,4223753.947924509,14103225.398593448,4223553.30072526,14103555.033277927,4223992.813637899,14102895.763908967,4224317.671008111

 

위의 좌표값을 아래와 같이 표시를 해야한다.

 

[[

[14105239.988929166, 4223257.282268806], 

[14105234.785437182, 4223249.518770073], 

[14105234.465436349 , 4223235.271775984],

[14105239.988929166 , 4223257.282268806]

]];

 

var getCoordinate =

14102895.763908967,4224317.671008111,14102432.364424989,4223753.947924509,14103225.398593448,4223553.30072526,14103555.033277927,4223992.813637899,14102895.763908967,4224317.671008111;

 

규칙을 살펴보면 두번째 콤마에 , -> ],[ 를 해주면 될 것 같다.

맨 앞의 [[[ 와 맨뒤의 ]]] 는 나중에 붙여주자.

 

var chg = getCoordinate.replace(/,/g, function (match, i, original) {
nth++;
return (nth%2 === 0) ? "],[" : match;
});
chg = '[[['+chg+']]]';

 

이렇게 하면 원하는 데이터가 나온다

match : 여기서는 콤마(,)

i : 콤마의 자릿수

original : 원래 데이터 

 

nth%2 === 0 : 2로 나누어 떨어지는 콤마에 대해서만 치환을 해주기 위해서