替换 TypeScript 中所有出现的字符串

替换 TypeScript 中所有出现的字符串

Replace all occurrences of a String in TypeScript

使用该replaceAll()方法替换 TypeScript 中所有出现的字符串,例如str.replaceAll('old', 'new'). replaceAll()方法返回一个新字符串,其中所有出现的指定子字符串都被替换为提供的替换项。

索引.ts
const str = 'apple banana apple'; const result = str.replaceAll('apple', 'kiwi'); console.log(result); // 👉️ "kiwi banana kiwi"


在 TypeScript 中使用
replaceAll()方法时,您可能会遇到以下错误

索引.ts
const str = 'apple banana apple'; // ⛔️ Error: Property 'replaceAll' does not exist on // type '"apple banana apple"'. Do you need // to change your target library? Try changing // the 'lib' compiler option to 'es2021' or later.ts(2550) const result = str.replaceAll('apple', 'kiwi');

如果您收到“属性‘replaceAll’在类型上不存在”错误,请打开您的
tsconfig.json
文件并添加
ES2021.String到您的lib数组中。

tsconfig.json文件
{ "compilerOptions": { // ... other options "lib": [ // ... other libs "ES2021.String" ] } }

这将解决错误,您将能够使用该replaceAll()
方法。

我们传递给该String.replaceAll方法的 2 个参数是:

  1. 要替换的字符串
  2. 替换字符串

如果您必须替换所有出现的不区分大小写的字符串,您可以将正则表达式传递给该replaceAll方法并像我们使用该replace方法一样使用它。

索引.ts
const str = 'APPLE banana apple'; const result = str.replaceAll(/apple/gi, 'kiwi'); console.log(result); // 👉️ "kiwi banana kiwi"

我们将以下 2 个参数传递给该String.replace方法:

  1. 要匹配的正则表达式。请注意,我们使用g(global) 标志来指定我们要匹配所有出现而不仅仅是第一个
  2. 替换字符串

i标志启用不区分大小写的搜索。有关正则表达式标志的完整列表,请查看
MDN 文档中的此表。

replaceAll方法不会更改原始字符串,而是返回一个替换了匹配项的新字符串。字符串在 JavaScript(和 TypeScript)中是不可变的。

或者,您可以使用该replace方法。

要替换 TypeScript 中所有出现的字符串,请使用该方法,将带有(全局搜索)标志replace()
的正则表达式传递给它。
g例如,str.replace(/old/g, 'new')返回一个新字符串,其中所有出现的old都替换为new

索引.ts
const str = 'APPLE banana apple'; const result = str.replace(/apple/gi, 'kiwi'); console.log(result); // 👉️ "kiwi banana kiwi"

replace方法采用的第一个参数

是正则表达式,第二个参数是替换字符串。

如果您需要支持非常旧的浏览器(如 Internet Explorer)并且您不将代码转换为旧版本的 JavaScript ,则可以使用replaceover 。replaceAll