性能问题:String.split然后在数组上行走,还是RegExp?

时间:2009-06-08 20:02:31

标签: javascript performance

我会对一行分隔的字符串做一些工作。哪一个会更快,首先通过String.split拆分文本,然后在结果数组上行走或直接通过reg exp遍历整个文本并在路上构建最终数组?

3 个答案:

答案 0 :(得分:15)

虽然这已经晚了两年半,但希望这有助于为未来的观众提供一些问题:http://jsperf.com/split-join-vs-regex-replace(包括多个浏览器的基准测试结果,以及功能性基准测试代码本身)

答案 1 :(得分:14)

嗯,获得答案的最好方法是花2分钟时间写一个循环,两次都做两千次并检查萤火虫看哪一个更快;)

我在使用MXHR时必须优化大量的字符串重写,根据我的经验,普通的String方法比当前浏览器中的RegExps快得多。在最短的字符串上使用RegExps,并使用String方法尽一切可能。

例如,我在当前代码中使用这个小数字:

var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');

这很丑陋,不管你信不信,它比高负荷下的等效RegExp要快得多。

答案 2 :(得分:1)

我希望使用split()会更快。它取决于许多细节,行数与长度,正则表达式的复杂性等。