replace
是 JavaScript 字符串的一个方法,用于替换字符串中的某些部分。它可以在字符串中查找指定的子字符串或正则表达式,并用新的子字符串替换找到的部分。
replace
方法返回一个新的字符串,原字符串保持不变。
语法
str.replace(regexp|substr, newSubstr|function)
regexp
或substr
:要查找的内容,可以是字符串或正则表达式。newSubstr
或function
:替换后的新内容,可以是字符串或一个函数。
示例
1. 使用字符串进行替换
const str = "Hello, world!";
const newStr = str.replace("world", "JavaScript");
console.log(newStr); // 输出: Hello, JavaScript!
在这个示例中,"world"
被 "JavaScript"
替换。
2. 使用正则表达式进行替换
const str = "Hello, world! Welcome to the world of programming.";
const newStr = str.replace(/world/g, "JavaScript");
console.log(newStr); // 输出: Hello, JavaScript! Welcome to the JavaScript of programming.
在这个示例中,使用了正则表达式 /world/g
来全局替换所有的 "world"
。
3. 使用带有标志的正则表达式
g
:全局匹配(替换所有匹配项)。i
:忽略大小写。
const str = "Hello, World! Welcome to the WORLD of programming.";
const newStr = str.replace(/world/gi, "JavaScript");
console.log(newStr); // 输出: Hello, JavaScript! Welcome to the JAVASCRIPT of programming.
在这个示例中,/world/gi
会忽略大小写并全局替换所有的 "World"
和 "WORLD"
。
4. 使用函数进行替换
你也可以传递一个函数作为第二个参数,该函数会在每次匹配时被调用,并返回替换后的值。
const str = "Hello, world! Welcome to the world of programming.";
const newStr = str.replace(/world/g, (match, offset, string) => {
return match.toUpperCase();
});
console.log(newStr); // 输出: Hello, WORLD! Welcome to the WORLD of programming.
在这个示例中,函数 (match, offset, string)
会被调用两次,每次匹配到 "world"
时都会将其转换为大写。
参数
match
:当前匹配的子字符串。offset
:匹配到的子字符串在原字符串中的位置。string
:原字符串。
全局替换
如果你需要全局替换,必须使用带有 g
标志的正则表达式。否则,replace
只会替换第一个匹配项。
const str = "Hello, world! Welcome to the world of programming.";
const newStr = str.replace(/world/g, "JavaScript");
console.log(newStr); // 输出: Hello, JavaScript! Welcome to the JavaScript of programming.
如果不使用 g
标志:
const str = "Hello, world! Welcome to the world of programming.";
const newStr = str.replace(/world/, "JavaScript");
console.log(newStr); // 输出: Hello, JavaScript! Welcome to the world of programming.
注意事项
replace
方法返回一个新的字符串,原字符串保持不变。- 如果使用字符串作为第一个参数,只会替换第一个匹配项。
- 如果需要全局替换,应使用带有
g
标志的正则表达式。
总结
replace
用于替换字符串中的某些部分。- 可以使用字符串或正则表达式进行匹配。
- 可以传递一个字符串或一个函数作为替换内容。
- 使用带有
g
标志的正则表达式进行全局替换。