我正在处理JavaScript的性能问题。所以我只想问:检查一个字符串是否包含另一个子字符串的最快方法是什么(我只需要布尔值)?您能否提出您的想法和示例代码片段?
您有两个可能性:
正则表达式似乎更快(至少在Chrome 10中如此)。
不能肯定地说哪种方法更快。浏览器之间的差异是巨大的。虽然在Chrome 10中indexOf
似乎更快,但在Safari 5 indexOf
中显然比任何其他方法都慢。
您必须看到并尝试自我。这取决于您的需求。例如,不区分大小写的搜索使用正则表达式会更快。
更新2018:
为了使人们免于自己运行测试,以下是大多数常见浏览器的当前结果,这些百分比表示性能比第二快的结果有所提高(在不同的浏览器中有所不同):
Chrome: indexOf(〜98%快)<-- wow
Firefox:缓存RegExp(
〜18%快)IE11:缓存RegExp(〜10%快)
Edge: indexOf(〜18%快)
Safari:缓存RegExp(〜0.4%快)
请注意,缓存的RegExp是:var r = new RegExp('simple'); var c = r.test(str);
相对于:/simple/.test(str)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句