如何在字符串中替换所有出现的子字符串

摘要:在本教程中,您将学习如何在字符串中替换所有出现的子字符串。

String 类型为您提供replace()replaceAll()方法,这些方法允许您替换字符串中所有出现的子字符串并返回字符串的新版本。

请注意,这两种方法都不会改变原始字符串,而是返回用新子字符串替换了子字符串的新字符串。

1) 使用 replace() 方法

以下示例使用replace()方法在message变量中用'JavaScript'替换字符串'JS'

const message = 'JS will, JS will, JS will rock you!';
const result = message.replace('JS','JavaScript');
console.log(result);Code language: JavaScript (javascript)

输出

JavaScript will, JS will, JS will rock you!

正如您从输出中清楚地看到的那样,replace()方法仅替换字符串中JS的第一次出现。

要替换所有出现的'JS'字符串,您可以将要搜索的字符串转换为 正则表达式,并使用全局标志 (g),如下所示

const message = 'JS will, JS will, JS will rock you!';
const result = message.replace(/JS/g,'JavaScript');
console.log(result);Code language: JavaScript (javascript)

输出

"JavaScript will, JavaScript will, JavaScript will rock you!
"Code language: JSON / JSON with Comments (json)

如果要替换所有出现的子字符串并忽略字母大小写,则需要将 i 标志添加到正则表达式中

const message = 'JS will, js will, Js will rock you!';
const result = message.replace(/JS/gi,'JavaScript');Code language: JavaScript (javascript)

输出

"JavaScript will, JavaScript will, JavaScript will rock you!"Code language: JSON / JSON with Comments (json)

2) 使用 replaceAll() 方法

replaceAll()方法替换字符串中所有出现的子字符串并返回新字符串。例如

const message = 'JS will, JS will, JS will rock you!';
const result = message.replaceAll('JS','JavaScript');

console.log(result);Code language: JavaScript (javascript)

输出

"JavaScript will, JavaScript will, JavaScript will rock you!"Code language: JSON / JSON with Comments (json)

如果要替换字符串中所有出现的子字符串,而不管字母大小写,则使用带gi标志的正则表达式

const message = 'JS will, Js will, js will rock you!';
const result = message.replaceAll(/JS/gi,'JavaScript');

console.log(result);Code language: JavaScript (javascript)

结果

"JavaScript will, JavaScript will, JavaScript will rock you!"Code language: JSON / JSON with Comments (json)

请注意,replaceAll()方法并非所有浏览器都支持。因此,在使用它之前,您应该检查浏览器兼容性。

总结

要将字符串中所有出现的子字符串替换为新的子字符串,您可以使用replace()replaceAll()方法

  • replace():将子字符串转换为正则表达式并使用 g 标志。
  • replaceAll()方法更加直接。

要忽略字母大小写,请在正则表达式中使用i标志。

本教程是否有帮助?