javascript - 拆分而不会丢失分隔符

KDa*_*awg -1 javascript arrays split

可能重复:
JavaScript拆分而不会丢失字符

我有一个字符串:

"<foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar>"
Run Code Online (Sandbox Code Playgroud)

我想将"abcdefg"的所有实例分成如下数组:

["<foo>abcdefg</bar>", "<foo>abcdefg</bar>", "<foo>abcdefg</bar>", "<foo>abcdefg</bar>"];
Run Code Online (Sandbox Code Playgroud)

我尝试:

var str="<foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar>";
var Array_Of_FooBars = str.split("</bar>"); 

alert(Array_Of_FooBars);
Run Code Online (Sandbox Code Playgroud)

但它返回:

["<foo>abcdefg", "<foo>abcdefg", "<foo>abcdefg", "<foo>abcdefg",]
Run Code Online (Sandbox Code Playgroud)

它正在删除分隔符''.我不希望这样.

如何使用拆分而不丢失字符串中的分隔符?

谢谢.肯

sku*_*ukt 9

试试这个.它不是一个完美的解决方案,但它应该适用于大多数情况.

str.split(/(?=<foo>)/)
Run Code Online (Sandbox Code Playgroud)

也就是说,将其拆分到每个开始标记之前的位置.

编辑:你也可以这样做match(),像这样:

str.match(/<foo>.*?<\/bar>/g)
Run Code Online (Sandbox Code Playgroud)