i want to split a string in jquery or javascript with multiple separator.
for one string as separator we can have :
var x = \"Name: John Doe\\nAge: 30\
Here's a function based on one of @DenysSéguret's answers:
String.prototype.xSplit = function(separators){
return this
.split(new RegExp(separators.join('|'), 'g'))
.map(function(bar){ return bar.trim() }); // remove trailing spaces
}
Usage:
var foo = "Before date Date: between date & age Age: after age";
foo = foo.xSplit(["Date:", "Age:"]);
Outcome:
foo == ["Before date", "between date & age", "after age"]
You can do
var tokens = x.split(/Age:|Date:/g);
This gives 3 strings :
["Name: John Doe
", " 30
Birth ", " 12/12/1981"]
If you want also to get the separators, use
var tokens = x.split(/(Age:|Date:)/g);
This gives 5 strings :
["Name: John Doe
", "Age:", " 30
Birth ", "Date:", " 12/12/1981"]
If you want to build your regexp dynamically use
var separators = ["Date:", "Age:"];
var tokens = x.split(new RegExp(separators.join('|'), 'g'));
or
var separators = ["Date:", "Age:"];
var tokens = x.split(new RegExp('('+separators.join('|')+')', 'g'));