一、基本语法(两种重载)
string.replace(searchValue, replaceValue)
| 参数类型 | 含义 | 返回值 |
|---|
| 字符串 | 普通字符串替换,只替换第一次出现 | 新字符串 |
| 正则表达式 | 支持全局 g、忽略大小写 i 等修饰符 | 按规则替换后的新字符串 |
| 函数 | 可动态计算每一个替换结果 | 新字符串 |
注意:replace() 不会修改原字符串(字符串是不可变的),永远返回新字符串!
二、常见用法速查表
| 需求 | 写法 | 结果示例 |
|---|
| 替换第一次出现 | "aaabbb".replace("a", "X") | "Xaabbb" |
| 替换所有出现(重点) | "aaabbb".replace(/a/g, "X") | "XXXbbb" |
| 不区分大小写全局替换 | "AbcABCabc".replace(/abc/gi, "X") | "XBCX" |
| 替换多个不同内容 | `.replace(/cat | dog/g, "pet")` |
| 只替换第 2 次出现 | "aaa".replace(/a/g, (m, i) => i === 1 ? "X" : m) | "aXa" |
| 替换并保留原匹配内容 | "hello".replace(/hello/g, "[HELLO]") | "[HELLO]" |
| 替换成大写 | "hello world".replace(/\b\w/g, c => c.toUpperCase()) | "Hello World" |
三、最强大用法:替换函数
str.replace(regexp|substr, function(match, p1, p2, offset, string) {
return '要替换成的内容';
})
经典实战案例
.(,)
.()
(){
num.().(,);
}
()
data = { :, : };
tpl = ;
result = tpl.(, data[key]||);
.(,).()
count = ;
.(,)