You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript中使用RegExp替换字符串?

在TypeScript中用正则替换双大括号包裹的变量内容

你可以通过自定义正则表达式配合String.replace()方法实现这个需求,核心是精准匹配{{}}包裹的内容并替换。

核心正则表达式

使用 /{{([^}]+)}}/g,各部分含义:

  • {{:匹配开头的双大括号
  • ([^}]+):捕获大括号内的变量名([^}]表示匹配除}外的任意字符,+确保至少有一个字符)
  • }}:匹配结尾的双大括号
  • g:全局匹配标志,确保替换所有符合条件的内容,而非仅第一个

单个固定替换示例

如果所有{{}}内容都要替换成同一个字符串,直接传入替换值即可:

const original = 'Hello {{world}}';
const result = original.replace(/{{([^}]+)}}/g, 'newtext');
console.log(result); // 输出: Hello newtext

多变量对应替换示例

如果需要根据不同变量名替换成对应值,可以用replace()的函数回调:

const template = 'Hello {{name}}, your favorite fruit is {{fruit}}';
const data = {
  name: 'Bob',
  fruit: 'apple'
};

const replaced = template.replace(/{{([^}]+)}}/g, (_, key) => {
  // 用trim()处理变量名可能带的空格,比如{{ name }}也能匹配
  return data[key.trim()] || _; // 若变量不存在,保留原{{}}内容
});

console.log(replaced); // 输出: Hello Bob, your favorite fruit is apple

注意事项

  • 如果大括号内有空格(如{{ world }}),key.trim()能确保正确匹配变量名
  • 这个正则不支持嵌套大括号(如{{outer{{inner}}}}),如果有嵌套需求需要调整正则逻辑
  • 必须加上全局标志g,否则只会替换第一个匹配项

内容的提问来源于stack exchange,提问作者Y.Y.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:52:07