首页 > 解决方案 > Javascript - 使用正则表达式就地处理所有匹配的组

问题描述

这是我的问题的一个例子:

对于这个字符串:“你好,我的名字是 {{Jaques}},我来自 {{France}}。”

我希望它输出:“你好,我的名字是 JAQUES,我来自法国。”

我以为我可以通过使用匹配并替换为正则表达式 {{(.*?)}} 来做到这一点,但是我很难让它给我组数据以便我可以进行替换。

任何帮助,将不胜感激。

标签: javascriptregexstring

解决方案


您可以将替换与回调函数一起使用,并将toUpperCase()用于捕获组。

{{and将}}被匹配而不返回。该组将返回组 1 的大写值。

let str = "Hello my name is {{Jaques}} and I am from {{France}}.";
let res = str.replace(/{{(.*?)}}/g, function(_, g1) {
  return g1.toUpperCase();
});
console.log(res);


推荐阅读