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(/(/)/)
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(/(/)/)
Share asked Apr 7, 2016 at 1:06 A KA K 1,6742 gold badges13 silver badges18 bronze badges 1- Possible duplicate of JS string.split() without removing the delimiters – Anderson Green Commented Apr 26, 2018 at 0:39
2 Answers
Reset to default 9You 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.
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));