Javascript 如何用{{}解析字符串

Javascript 如何用{{}解析字符串,javascript,regex,Javascript,Regex,我有一根绳子 var str = "{{a}} {{b}} aaa"; 我想用{{}拆分字符串。所以,我的预期结果是 array = ["a", "b"] 更新: 作为另一种情况,给定 var str1 = "{{a {{b}}}}", str2 = "{{{a}}}"; 结果应该是 var arr1 = ["b"], arr2 = ["a"]; 一种选择是将它们全部删除,然后提取内容 var单位=[ “{{a}{{b}}aaa”, “{{a{{b}}}}”, “{{{

我有一根绳子

var str = "{{a}} {{b}} aaa";
我想用
{{}
拆分字符串。所以,我的预期结果是

array = ["a", "b"]
更新

作为另一种情况,给定

var str1 = "{{a {{b}}}}",
    str2 = "{{{a}}}";
结果应该是

var arr1 = ["b"],
    arr2 = ["a"];
一种选择是将它们全部删除,然后提取内容

var单位=[
“{{a}{{b}}aaa”,
“{{a{{b}}}}”,
“{{{a}}}”
];
单位。forEach(函数(str){
var matched=str.match(/{([^}]*[^{]*}}/g).map(函数){
返回s.substring(2,s.length-2)
});
console.log(str,'=');
控制台日志(匹配);

});如前所述,可能没有覆盖所有场景的最佳方法,但可以使用拆分,如:

var str1 = "{{a}} {{b}} aaa", str2 = "{{a {{b}}}}", str3 = "{{{a}}};"

var splits = str1.split(/[^{][^.][^}]|[{}]/).filter(Boolean);
console.log(splits);
结果:

Array [ "a", "b" ]
Array [ "b" ]
Array [ "a" ]
示例:


那么空格和aaa
到哪里去了?你想如何处理像
{a{b}}}}
{{a}}}}
这样的情况?在@ChrisHunt案例中,我的结果将是
[“a{b}”,“a}]
同样,你想如何处理像
{ab}c}
?@VuLeAnh你有什么标准可以让
{{{a}}}
转到
[{a}]
但是
{a}}{{b}}
转到
['a',b']
?“这里有一些模棱两可的地方。”“是的。完成!酷。给你。也请添加正则表达式的解释。请检查
“{{a{{b}}{{c}}}”
@PranavCBalan Blarg。取决于它应该输出什么,可能并不完美。@Tushar:我认为他需要
a{{{b}{{c}}
,正则表达式不是解决这个问题的正确方法。。。。