Javascript 最快的不区分大小写搜索

Javascript 最快的不区分大小写搜索,javascript,Javascript,在我的作品中,我对所有内容都使用了.toLowerCase(),这导致了.toLowerCase()在同一个字符串上多次运行,因为它在不同的内容中循环 有人告诉我不要那样做,而要把toLowerCase'd字符串切掉。另一个说使用Regex,我写了一个jsperf测试,但促使我在这里发帖询问的是。使用新的RegExp(指针,'I')搜索,与/hay/I相比,产生了巨大的速度差异 什么是最有效的不区分大小写的indexOf 这是我的jsPerf:如果您声明了带外文字,则大致相同;制作物品很昂贵。。

在我的作品中,我对所有内容都使用了.toLowerCase(),这导致了.toLowerCase()在同一个字符串上多次运行,因为它在不同的内容中循环

有人告诉我不要那样做,而要把toLowerCase'd字符串切掉。另一个说使用Regex,我写了一个jsperf测试,但促使我在这里发帖询问的是
。使用
新的RegExp(指针,'I')
搜索
,与
/hay/I
相比,产生了巨大的速度差异

什么是最有效的不区分大小写的indexOf


这是我的jsPerf:

如果您声明了带外文字,则大致相同;制作物品很昂贵。。。加速是因为每次测试都要重新使用相同的RegExp对象,而不是每次测试都要创建一个新的RegExp对象……indexOf比RegExp方法(它们中的任何一种)快得多,所以如果你可以回收缓存的haystack和needle的小写版本,那应该是最快的。非常感谢@dandavis,我将添加该测试用例:)啊,你在写,indexOf方法将其从水中吹出!谢谢@Dandavisee我在chrome中的测试,exec带有新鲜的patt,但是diff语法要快得多,如果你声明文字超出范围,它也差不多;制作物品很昂贵。。。加速是因为每次测试都要重新使用相同的RegExp对象,而不是每次测试都要创建一个新的RegExp对象……indexOf比RegExp方法(它们中的任何一种)快得多,所以如果你可以回收缓存的haystack和needle的小写版本,那应该是最快的。非常感谢@dandavis,我将添加该测试用例:)啊,你在写,indexOf方法将其从水中吹出!谢谢@Dandavisee我在chrome中的测试,exec使用了新的patt,但是diff语法要快得多