2017-02-22 37 views
0

有一個字符串和正則表達式:如何使用RegExp替換javascript中的字符串?

var str = "a1c a23c a456c 123"; 
var re = /a(\d*)c/g; 

我想匹配所有ac之間,並更換到b,結果我想的是:

"abc abc abc 123" 

如何去做吧?

+0

你的正則表達式也會匹配'「ac」'沒有數字 - 這是故意的嗎? – nnnnnn

回答

3

試試這個

var str = "a1c a23c a456c 123"; 
 
    var re = /(a)(\d*)(c)/g; 
 
    
 
    console.log(str.replace(re, '$1b$3'));

編輯:

如果ac不應該成爲abc,那麼正則表達式應該是/(a)(\d+)(c)/g

+0

這也會將「ac」替換爲「abc」。 – nnnnnn

+0

如果我們不想,那麼正則表達式應該是'/(a)(\ d +)(c)/ g' – RaR

+1

因爲兩個字符都是靜態的,所以不需要捕獲組。 – Tushar

2

試試這個:

var str = "a1c a23c a456c 123"; 
var newStr = str.replace(/\ba\d+c\b/g, "abc"); 
console.log(newStr); 
+2

不需要捕獲組'/ \ ba \ d + c \ b/g'abc''。 – Tushar