我会对一行分隔的字符串做一些工作。哪一个会更快,首先通过String.split拆分文本,然后在结果数组上行走或直接通过reg exp遍历整个文本并在路上构建最终数组?
答案 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()会更快。它取决于许多细节,行数与长度,正则表达式的复杂性等。