js正则匹配多个mustache语法

我用的

const str = "{{ name }}{{ people.name }}";
const reg = /\{\{.+\}\}/; // 

匹配到的结果是:{{ name }}{{ people.name }}
我想要他们两分开的结果要怎么写正则呢?例如:

{
    0: "{{ name }}",
    1: "{{ people.name }}"
}

这种结果

阅读 3.8k
2 个回答
const str = "{{ name }}{{ people.name }}";
str.match(/\{\{.+?}}/g);

你写的是.+是贪婪匹配,要写成.+?变成非贪婪

let reg = /\{\{[^}]+\}\}?/g;

最主要的改变是使用?来防止贪婪匹配,使用g做全局匹配。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题