我有一个字符串
var str = "{{a}} {{b}} aaa";
我想用{{}}
拆分字符串。所以,我的预期结果是
array = ["a", "b"]
更新:
另一种情况,给出
var str1 = "{{a {{b}}}}",
str2 = "{{{a}}}";
结果应为
var arr1 = ["b"],
arr2 = ["a"];
答案 0 :(得分:3)
一个选项是match
全部,然后提取内容。
var units = [
"{{a}} {{b}} aaa",
"{{a {{b}}}}",
"{{{a}}};"
];
units.forEach(function(str) {
var matched = str.match(/{{([^}]*[^{]*)}}/g).map(function(s) {
return s.substring(2, s.length - 2)
});
console.log(str, '=');
console.log(matched);
});
答案 1 :(得分:0)
如前所述,可能没有最好的方法来涵盖每个场景,但可以使用split,如:
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" ]
示例: