JS 字符串替换

在JavaScript中,字符串替换通常使用replace方法。这个方法可以用来替换字符串中的某个子字符串为另一个字符串。replace方法的基本语法是:

string.replace(searchValue, newValue)
  • searchValue:一个表示要被替换的模式的字符串或正则表达式。
  • newValue:一个用于替换匹配部分的新字符串或一个返回新值的回调函数。

替换第一个匹配的子字符串

默认情况下,replace方法只替换第一个匹配的子字符串。例如:

let str = "Hello, world!";
let newStr = str.replace("world", "JavaScript");
console.log(newStr); // 输出: "Hello, JavaScript!"

替换所有匹配的子字符串

如果你想要替换所有匹配的子字符串,需要使用正则表达式的全局(g)标志。例如:

let str = “apple, banana, apple”;
let newStr = str.replace(/apple/g, “orange”);
console.log(newStr); // 输出: “orange, banana, orange”

使用回调函数进行替换

replace方法的第二个参数也可以是一个回调函数,这个函数会为每个匹配项调用,并返回用于替换的新值。回调函数接收多个参数,但最常用的是匹配到的子字符串。例如:

let str = "The quick brown fox jumps over the lazy dog.";
let newStr = str.replace(/\b\w+\b/g, function(match) {
  return match.toUpperCase();
});
console.log(newStr); // 输出: "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG."

在这个例子中,正则表达式\b\w+\b匹配每个单词,然后通过回调函数将每个单词转换为大写。

注意事项

  • replace方法不会改变原始字符串,而是返回一个新的字符串。
  • 当使用正则表达式作为searchValue时,可以添加不同的标志来改变匹配行为,如i(不区分大小写)、m(多行模式)等。

通过掌握replace方法,你可以灵活地对字符串进行各种替换操作,以满足不同的需求

使用 String.prototype.replaceAll() 方法

replaceAll() 方法用于在字符串中用一些字符替换另一些字符,与 replace() 不同的是,replaceAll() 会替换所有匹配的子串,而 replace() 只替换第一个匹配的子串。

基本用法:

var str = "Hello, world! World is great.";
var newStr = str.replaceAll("world", "JavaScript");
console.log(newStr); // 输出: Hello, JavaScript! JavaScript is great.