반응형
링크 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
반응형
'IT이야기' 카테고리의 다른 글
Iterator를 스트림으로 변환하는 방법 (0) | 2022.04.22 |
---|---|
Java가 서명되지 않은 int를 지원하지 않는 이유는? (0) | 2022.04.22 |
Nuxt.js 라우팅 URL(대시 제외) / (0) | 2022.04.22 |
Vuejs는 데이터가 로드된 후에만 하위 구성 요소를 마운트함 (0) | 2022.04.22 |
C/C++ 코드에서 주석 제거 (0) | 2022.04.22 |