replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

使用

1
2
3
4
5
6
7
8
stringObject.replace(regexp/substr,newSubstr/function)

// regexp/substr 必需。规定子字符串或要替换的模式的 RegExp 对象。
// 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

// newSubstr 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

// function 一个函数,用于创建新的子字符串以用于替换给定的正则表达式或substr的匹配。

newSubstr 中如果有 $ 字符具有特定的含义。如下所示,它说明从模式匹配得到的字符串将用于替换

1
2
3
4
5
$1$2、...、$99    # 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& # 与 regexp 相匹配的子串。
$` # 位于匹配子串左侧的文本。
$' # 位于匹配子串右侧的文本。
$$ # 直接量符号。'`

例子

替换第一个

1
2
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "W3School"))

1
Visit W3School!

全局替换

1
2
3
4
5
var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."

document.write(str.replace(/Microsoft/g, "W3School"))

1
2
Welcome to W3School! We are proud to announce that W3School
has one of the largest Web Developers sites in the world.

全局替换

1
2
3
4
5
var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."

document.write(str.replace(/Microsoft/g, "W3School"))

1
2
Welcome to W3School! We are proud to announce that W3School
has one of the largest Web Developers sites in the world.

首字母转大写

1
2
3
4
5
6
7
name = 'aaa bbb ccc';
uw=name.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);
}
);

document.write(uw);

1
Aaa Bbb Ccc
03-16 22:53