如何将jquery中的字符串与多个字符串拆分为分隔符

Sil*_*ght 4 javascript regex string jquery split

我想在jquery或javascript中使用多个分隔符拆分字符串.
我们可以将一个字符串作为分隔符:

var x = "Name: John Doe\nAge: 30\nBirth Date: 12/12/1981";
var pieces = x.split("\n"), part;
for (var i = 0; i < pieces.length; i++) {
         bla bla bla
}
Run Code Online (Sandbox Code Playgroud)

但是我希望将字符串(x)拆分为:Age:Date:(表示字符串数组作为分隔符)
,最后我想要一个带有这些部分的sting数组:"Name:John Doe \n","30 \nBirth"," 1981年12月12日"
那个x字符串只是一个例子,我没有这样的字符串!我怎么能重写这些代码?

Den*_*ret 12

你可以做

var tokens = x.split(/Age:|Date:/g);
Run Code Online (Sandbox Code Playgroud)

这给出了3个字符串:

["Name: John Doe
", " 30
Birth ", " 12/12/1981"]
Run Code Online (Sandbox Code Playgroud)

如果您还想获得分隔符,请使用

var tokens = x.split(/(Age:|Date:)/g);
Run Code Online (Sandbox Code Playgroud)

这给出了5个字符串:

["Name: John Doe
", "Age:", " 30
Birth ", "Date:", " 12/12/1981"]
Run Code Online (Sandbox Code Playgroud)

如果你想动态构建你的正则表达式

var separators = ["Date:", "Age:"];
var tokens = x.split(new RegExp(separators.join('|'), 'g'));?????????????????
Run Code Online (Sandbox Code Playgroud)

要么

var separators = ["Date:", "Age:"];
var tokens = x.split(new RegExp('('+separators.join('|')+')', 'g'));
Run Code Online (Sandbox Code Playgroud)