我有一个字符串网址,结构如下:
URL /收件箱/克/ {PAGE_NUMBER}
我处于需要用新值替换{page_number}
的情况。所以我需要以某种方式搜索url/inbox/g
并将其替换为url/inbox/g/{new_value}
。
如何使用replace()
函数来实现这一目标?
答案 0 :(得分:1)
var url = "url/inbox/g/4321"
var your_number = 1234
url = url.replace(/\d+$/, your_number)
答案 1 :(得分:1)
使用这样的替换语句:
var newVal = 'anything',
pattern = "/url\/inbox\/g\/\d+$/",
reg = new RegExp(pattern, "i");
repURL = url.replace(reg, "url/inbox/g/" + newVal);
我假设动态访问url
。
答案 2 :(得分:1)
我会使用以下正则表达式:/\/\d*$/m
并且替换可以通过以下方式完成:
str.replace(/\/\d*$/m, "/" + n)
n
是新值
正则表达式说找到匹配“/”的所有内容,后跟0或更多数字,结束字符串。 Reference
答案 3 :(得分:1)
另外两种可能性,不使用RegExp。
const url = 'url/inbox/g/{page_number}';
const parts = url.split('/', 3);
const new_number = '{new_page_number}';
parts.push(new_number);
const new_url1 = parts.join('/');
console.log(new_url1);
const url = 'url/inbox/g/{page_number}';
const new_number = '{new_page_number}';
const new_url2 = `${url.slice(0, url.lastIndexOf('/'))}/${new_number}`;
console.log(new_url2);
答案 4 :(得分:1)
由于数字是字符串的最后一部分,您可以使用lastIndexOf
和slice
使用非正则表达式解决方案:
<script>
url = 'url/inbox/g/44';
replaceNumStr = 'Dummy';
newVal = url.slice(0,url.lastIndexOf('/')+1);
alert(newVal+replaceNumStr);
</script>