2014-01-13 155 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

相關問題