How to preserve separators in the result of String.prototype.split()
- Published at
- Updated at
- Reading time
Call it on a string, define a separator and receive an array of its substrings. Easy peasy!
"Hello party people!".split(' '); // Array(3) [ "Hello", "party", "people!" ]
The first function parameter (the separator), can be a string value but also a regular expression. By using a regular expression you can devide the original string dependending on different separators.
// Split the string on "-" and "_" "Hello_party-people!".split(/[-_]/); // Array(3) [ "Hello", "party", "people!" ]
No matter if your separator is a string value or regular expression, its value is usually not included in the returned array. MDN states this functionality as follows:
)), the matching values are included in the result. 😲
// Split the string on "-" and "_" // but include the separator in the result "Hello_party-people!".split(/([-_])/); // Array(5) [ "Hello", "_", "party", "-", "people!" ]
I wasn't aware of this behavior, and I bet it can replace some complex regular expression logic!