IT이야기

링크 Javascript에서 문자열 부분 바꾸기

cyworld 2022. 4. 22. 21:07
반응형

링크 Javascript에서 문자열 부분 바꾸기

다음과 같은 링크가 있다.

/v1/catalogue/folders/{catalogueId:[0-9]+}/translations/{translationId:[0-9]+}/

및 다음 데이터:

catalogueId: 31
translationId: 4

이제 데이터 객체 값이 있는 곱슬 괄호 사이의 부분을 변경하고자 한다.따라서 링크는 다음과 같이 표시되어야 한다.

/v1/catalogue/folders/31/translations/4/

Javascript에 이것을 증가시킬 수 있는 방법이 있을까?만약 그렇다면, 그 방법은 무엇인가?

옵션 중 하나는 다음과 같다.

const regex = /\{(.*?)\}/g
const url = "/v1/catalogue/folders/{catalogueId:[0-9]+}/translations/{translationId:[0-9]+}/"
const replacements = { catalogueId: 19, translationId: 20 } 

const result = url.replace(regex, function(_, segment) {
  return replacements[ segment.split(':')[0] ];
});

아래 예시를 참고하다

var data = {
  catalogueId: 31,
  translationId: 4,
};

var url = $('#mylink').attr('href');
for(var key in data) {
  var regex = new RegExp('{' + key + '[^}]*}', 'g');
  console.log(regex);
  url = url.replace(regex, data[key]);
}
console.log(url);
$('#mylink').attr('href', url);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a id="mylink" href="/v1/catalogue/folders/{catalogueId:[0-9]+}/translations/{translationId:[0-9]+}/">link</a>

참조URL: https://stackoverflow.com/questions/40614049/replace-part-of-string-in-a-link-javascript

반응형