string的replace方法用于替换字符串,它接受两个参数。第一个是即将被替换的旧字符串,第二个是用来替换的新字符串。
var str='abcdef',
newstr=str.replace('a','x');
alert(newstr);//xbcdef
它的第一个参数也可以是正则表达式,如:
var str='abcdef',
newstr=str.replace(/a/,'x');
alert(newstr);//xbcdef
注意,如果正则表达式没有全局g标志,那么它只替换第一处。
今天的重点是replace方法的第二个参数可以是函数,这个函数返回的字符串蒋作为替换的文本。此函数接受多个参数,第一个是匹配整个模式的子串,从第二个开始(可以有多个)为与模式中的子表达式匹配的字符串,即匹配分组表达式的子串。接下一个是匹配模式子字符串的起始位置,最后一个是字符串本身。
先看一道题,一个字符串中含有若干数字,给这些数字都加1。
var str='abs87uw90i9u8',
newstr=str.replace(/\d/g,function(matchstr){
return parseInt(matchstr)+1;
});
alert(newstr);// abs98uw101i10u9;