繁体   English   中英

在链接Javascript中替换部分字符串

[英]Replace part of string in a link 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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM