Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

String.prototype.split() with a regex with grouping ( parentheses ). #3467

Open
BobStein opened this issue May 29, 2017 · 1 comment
Open

Comments

@BobStein
Copy link

Splitting a string normally leaves out the delimiters.

> "a and b or c".split(/and|or/)
["a ", " b ", " c"]

But grouping-parentheses in a regular expression preserves them in the odd-numbered indexes of the output.

> "a and b or c".split(/(and|or)/)
["a ", "and", " b ", "or", " c"]

This was not supported in IE before version 11. And MDN says "not all browsers support this capability." I'd like to see whether other browsers support this feature. But the current information in caniuse.com does not address this.

These methods are supported in effectively all browsers (since IE6+, Firefox 2+, Chrome 1+ etc)

@GPHemsley
Copy link

It seems split() support data is now provided by MDN compat data:
https://caniuse.com/mdn-javascript_builtins_string_split
https://caniuse.com/mdn-javascript_builtins_symbol_split
https://caniuse.com/mdn-javascript_builtins_regexp_--split

These are all interrelated concepts with different support histories, but none of them explicitly mention splitting with groupings as a separate caveat. In fact, even the aforementioned MDN page has removed the aforementioned statement about (lack of) support.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@split

It might be worth following up at the MDN compat repo on this topic.

See also:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants