curious-cat
curious-cat

Reputation: 421

How to split string between two separators in javascript?

I know how to split using, multiple separators but I have no idea how to split a string into an array between two characters. So:

var myArray = "(text1)(text2)(text3)".split(???)
//=> myArray[0] = "text1", myArray[1] = "text2", myArray[2] = "text3"

What should I enter in the "???"? Or is there a different approach I should use?

Making ")(" a separator won't work as I want to split the array with a variety of separators such as ">" making it very unpractical to list every possible combination of separators

Upvotes: 11

Views: 16112

Answers (2)

Martin Ender
Martin Ender

Reputation: 44259

Using split between specific characters without losing any characters is not possible with JavaScript, because you would need a lookbehind for that (which is not supported). But since you seem to want the texts inside the parentheses, instead of splitting you could just match the longest-possible string not containing parentheses:

myArray = "(text1)(text2)(text3)".match(/[^()]+/g)

Upvotes: 2

Ωmega
Ωmega

Reputation: 43673

.split(/[()]+/).filter(function(e) { return e; });

See this demo.

Upvotes: 13

Related Questions