The split approach is interesting. I was playing with different options, but not with this. Also, I found that using toLowerCase() made the code considerably slower, it works considerably faster if you use a regular expression in the split:
I think this is my favourite solution. I hadn't checked its speed, but I thought that toLowerCase() probably didn't make it any smoother than returning an empty array if there are no matches.
The split approach is interesting. I was playing with different options, but not with this. Also, I found that using
toLowerCase()made the code considerably slower, it works considerably faster if you use a regular expression in the split:I think this is my favourite solution. I hadn't checked its speed, but I thought that
toLowerCase()probably didn't make it any smoother than returning an empty array if there are no matches.I checked different solutions with jsperf and this was the second fastest by a little (but results may vary.)