2014-01-13 105 views
0

我试图用String.replace()用正则表达式替换匹配的表达式。使用正则表达式替换字符串中的匹配

像这样:

var newStr = loc.replace(/Slide(\d*)/,(i+1));

这个表达式把

https://xxxxxxx.net/qa/club/Slide1.PNG

https://xxxxxxx.net/qa/club/1.PNG

我只是想更换“Slide”后面的数字,而不删除该单词。我怎样才能做到这一点?

+0

它总是“幻灯片”,你想删除? –

+0

@JHuangweb我永远不想删除“幻灯片” – Houseman

回答

3

使用捕获组并将其插入到替换中。

loc.replace(/(Slide)\d*/, '$1' + (i+1)); 

如果单词永远是幻灯片,那么你可以简单地使用这周围没有捕获任何

loc.replace(/Slide\d*/, 'Slide' + (i+1)); 

的paratheses第(i + 1)是很重要的字符串连接之前强制数学运算。

如果Slide后面总是跟一个数字,请在正则表达式中将*更改为+

+0

我根本不想要“幻灯片”。我只是想要这个号码。除了数字之外,'+'似乎与'Slide'匹配。 – Houseman

相关问题