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.