Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用多个字符串作为分隔符在jquery中拆分字符串_Javascript_Jquery_Regex_String_Split - Fatal编程技术网

Javascript 如何使用多个字符串作为分隔符在jquery中拆分字符串

Javascript 如何使用多个字符串作为分隔符在jquery中拆分字符串,javascript,jquery,regex,string,split,Javascript,Jquery,Regex,String,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 } var x=“姓名:约翰·多伊\n出生日期:1981年12月12日

我想在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
}
var x=“姓名:约翰·多伊\n出生日期:1981年12月12日”;
var pieces=x.split(“\n”),零件;
对于(变量i=0;i
但是我想将字符串(x)拆分为:
年龄:
日期:
(表示字符串数组作为分隔符)
最后我想要一个包含以下部分的sting数组:“姓名:John Doe\n”,“30\n出生”,“12/12/1981”
这个x字符串只是一个例子,我没有这样的字符串! 如何重写这些代码

你能行

var tokens = x.split(/Age:|Date:/g);
这将提供3个字符串:

["Name: John Doe
", " 30
Birth ", " 12/12/1981"]
["Name: John Doe
", "Age:", " 30
Birth ", "Date:", " 12/12/1981"]
如果您还想获得分隔符,请使用

var tokens = x.split(/(Age:|Date:)/g);
这将提供5个字符串:

["Name: John Doe
", " 30
Birth ", " 12/12/1981"]
["Name: John Doe
", "Age:", " 30
Birth ", "Date:", " 12/12/1981"]
如果要动态生成regexp,请使用

var separators = ["Date:", "Age:"];
var tokens = x.split(new RegExp(separators.join('|'), 'g'));​​​​​​​​​​​​​​​​​


这是一个基于@DenysSéguret的答案之一的函数:

String.prototype.xSplit = function(separators){
    return this
      .split(new RegExp(separators.join('|'), 'g'))
      .map(function(bar){ return bar.trim() }); // remove trailing spaces
}
用法:

var foo = "Before date Date: between date & age Age: after age";
foo = foo.xSplit(​​​​​​​​​​​​​​​["Date:", "Age:"]);
结果:

foo == ["Before date", "between date & age", "after age"]

重复…使
\n?
成为正则表达式的一部分。