Bootstrap

JS之字符串中的replace方法


replace 是 JavaScript 字符串的一个方法,用于替换字符串中的某些部分。它可以在字符串中查找指定的子字符串或正则表达式,并用新的子字符串替换找到的部分。 replace 方法返回一个新的字符串,原字符串保持不变。

语法

str.replace(regexp|substr, newSubstr|function)
  • regexpsubstr:要查找的内容,可以是字符串或正则表达式。
  • newSubstrfunction:替换后的新内容,可以是字符串或一个函数。

示例

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 标志的正则表达式进行全局替换。
;