In IE, "x".split(/(x)/).length
returns 0
In Firefox, Chrome, Safari, and Opera, it returns 3
.
Does anybody know the reason why? If possible, a reference link will be greatly appreciated.
I believe that it is a IE regex implementation issue, but I can't find any document about that.
You're correct that there are implementation issues. IE both ignores empty values and capture blocks within regular expressions.
So for
IE gives
where the other browsers give
and when you add the capturing:
IE performs the same, but the others add the captured delimiter to the resulting array to give
So unfortunately you probably either need to avoid using split, or code around these issues.
Here for example http://blog.stchur.com/2007/03/28/split-broken-in-ie/
I had the same problem with the broken IE implementation of split.
Here's a small library file that fixed the problem perfectly.