📜  JavaScript字符串.replace() 方法(1)

📅  最后修改于: 2023-12-03 14:42:41.330000             🧑  作者: Mango

JavaScript字符串.replace() 方法

概述

JavaScript字符串.replace() 方法是 JavaScript 中常用的字符串操作方法之一,用于将一个字符串中所有匹配某个模式的子字符串替换成指定的字符串。

语法
str.replace(regexp|substr, newSubstr|function)
  • str:要进行替换操作的字符串,必须是一个字符串类型的变量。
  • regexp:用于匹配要替换的子字符串的模式,可以是正则表达式对象或正则表达式的字面量。如果 regexp 是一个非全局正则表达式(即没有 g 标志),则只替换第一个匹配项;否则替换所有匹配项。如果不指定该参数,则只替换第一个匹配项。
  • substr:要替换的子字符串。如果指定了该参数,则只替换第一次匹配到的子字符串。
  • newSubstr:用于替换匹配到的子字符串的新字符串。
  • function:一个用来创建替换字符串的函数。函数的返回值将被当作替换字符串。
示例
字符串中的简单替换
let str = 'Hello, JavaScript! JavaScript is awesome.';
let newStr = str.replace('JavaScript', 'Node.js');
console.log(newStr); // 输出:'Hello, Node.js! Node.js is awesome.'

以上代码将字符串 str 中的第一个 'JavaScript' 替换成了 'Node.js'。

字符串中的全局替换
let str = 'Hello, JavaScript! JavaScript is awesome. I love JavaScript.';
let newStr = str.replace(/JavaScript/g, 'Node.js');
console.log(newStr); // 输出:'Hello, Node.js! Node.js is awesome. I love Node.js.'

以上代码使用正则表达式 /JavaScript/g 全局替换了字符串 str 中的所有 'JavaScript'。

自定义替换函数
let str = 'Hello, world! It\'s a wonderful world.';
let newStr = str.replace(/world/g, function(match, offset) {
  if (offset === 0) {
    return 'universe';
  } else {
    return 'planet';
  }
});
console.log(newStr); // 输出:'Hello, universe! It's a wonderful planet.'

以上代码使用一个自定义函数来进行字符串替换。该函数接受两个参数:

  • match:匹配到的子字符串。
  • offset:匹配到的子字符串在原字符串中的偏移量。

函数根据 offset 的值来决定要返回什么字符串。在本例中,offset 为 0 时返回 'universe',否则返回 'planet'。