替换字符串中的最后一个数字

时间:2016-09-14 22:05:52

标签: javascript

我有一个字符串网址,结构如下:

  

URL /收件箱/克/ {PAGE_NUMBER}

我处于需要用新值替换{page_number}的情况。所以我需要以某种方式搜索url/inbox/g并将其替换为url/inbox/g/{new_value}

如何使用replace()函数来实现这一目标?

5 个答案:

答案 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)

由于数字是字符串的最后一部分,您可以使用lastIndexOfslice使用非正则表达式解决方案:

<script>
  url = 'url/inbox/g/44';
  replaceNumStr = 'Dummy';
  newVal = url.slice(0,url.lastIndexOf('/')+1);
  alert(newVal+replaceNumStr);
 </script>

结帐this demo