2015-05-13 41 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);

相关问题