2015-05-13 42 views
4

我想在每次使用string.replace()替換一個子字符串時增加一個數字。例如:在javascript中每次替換時增加一個數字

var string = "This is this"; 
 
var number = 0; 
 
string.replace("is", "as");

當第一與string.replace是This數量變爲1,則對於第二個是is數目變得2終於爲最後是this數量變爲3。 在此先感謝...! :-)

+1

你的意思是你要算替代? –

+1

您可以使用[函數作爲第二個參數](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter)來執行此操作。 – ForguesR

+0

'string.replace(「is」,「as」);'只會替換第一次出現。你打算多次調用'replace'嗎? –

回答

8

您可以將函數傳遞給.replace()並返回該值。您還需要使用全局正則表達式來替換所有實例。

var string = "This is this"; 
 
var number = 0; 
 

 
document.body.textContent = string.replace(/is/g, function() { 
 
    return ++number; 
 
});

+0

但是我也想替換文字 – EMM

+1

@EMM:只是返回替換。 –

+0

@FelixKling那又如何: var string =「這就是這個」; var number = 0; string.replace(/ is/g,function(){ number ++; return「as $ 1 as」; }); alert(number); – EMM

4

嘗試:

var string = "This is this"; 
 
var number = 0; 
 
string.replace(/is/g, function() { 
 
    number++; 
 
    return "as"; 
 
}); 
 
alert(number);

相關問題