A K
A K

Reputation: 1674

Split String in Javascript but keep delimiter /

var string = 'Animation/rawr/javascript.js'

//expected output 
// ['Animation/', 'rawr/', 'javascript.js']

I'm having trouble splitting this string properly. Can I get some help on this?

string.split(/(/)/)

Upvotes: 4

Views: 7889

Answers (2)

Martin Parenteau
Martin Parenteau

Reputation: 73731

You can do it with a regular expression using ''.match() instead of split:

var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);

The first part [^\/]+\/? matches as many non forward slashes it can optionally followed by a /. The second part \/ (after the or: |) matches a lone forward slash.

Upvotes: 9

John
John

Reputation: 770

If you want to split it, you have to add the "/"
afterwards. But the more efficient way would be a regex.

Split and add "/" afterwards:

var string = 'Animation/rawr/javascript.js';
var arr = string.split("/");

arr.forEach(function(e, i, a) {
  a[--i] += "/";
});

document.write(JSON.stringify(arr));

Upvotes: -1

Related Questions