📜  JavaScript字符串replaceAll()

📅  最后修改于: 2020-09-27 07:13:32             🧑  作者: Mango

JavaScript replaceAll()方法返回一个新字符串 ,该字符串的所有模式匹配都由替换符替换。

replaceAll()的语法为:

str.replaceAll(pattern, replacement)

在这里, str是一个字符串。


replaceAll()参数

replaceAll()方法采用:

  • pattern -要替换的子字符串或正则表达式
  • replacement -的pattern被替换为这个replacement (可以是一个字符串或一函数)

从replaceAll()返回值
  • replaceAll()方法返回一个新的字符串 ,该字符串的所有匹配项都将替换为替换项。

注意:不带全局(“ g “)标志的RegExp将抛出TypeError


示例1:使用replaceAll()
const text = "Java is awesome. Java is fun.";

// passing a string as the first parameter
let pattern = "Java";
let new_text = text.replaceAll(pattern, "JavaScript");
console.log(new_text);

// passing a regex as the first parameter
pattern = /Java/g;
new_text = text.replaceAll(pattern, "JavaScript");
console.log(new_text);

输出

JavaScript is awesome. JavaScript is fun
JavaScript is awesome. JavaScript is fun.

不考虑大写/小写替换

replaceAll()方法区分大小写。要执行不区分大小写的替换,您需要使用带i开关的正则表达式(不区分大小写的搜索)。

示例2:不区分大小写的替换
const text = "javaSCRIPT JavaScript";

// all occurrences of javascript is replaced
let pattern = /javascript/gi; // case-insensitive and global search
let new_text = text.replaceAll(pattern, "JS");
console.log(new_text); // JS JS

输出

JS JS

示例3:通过函数代替

您还可以将函数 (而不是字符串)作为第二个参数传递给replaceAll()方法。

const text = "3.1415";

// generate a random digit between 0 and 9
function generateRandomDigit() {
  return Math.floor(Math.random() * 10);
}

// regex to match a digit
const pattern = /\d/g;

const new_text = text.replaceAll(pattern, generateRandomDigit);
console.log(new_text);

输出

4.3518

运行此程序时,您可能会得到不同的输出。这是因为文本中的第一个数字被09之间的随机数字所代替。


推荐读物: JavaScript String replace()