Tenga en cuenta que si la cadena de búsqueda es de entrada del usuario que necesita para escapar de los caracteres de expresiones regulares especiales, que al final hace más lento el enfoque de expresión regular, haciendo que el toLowerCase() se acercan a los más rápidos en este caso.
Esto es lo que se vería así:
var search = getUserInput();
/* this slows it down */
var regex = RegExp(search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "i");
var noPic = testString.search(regex);
Véase el jsperf actualización: http://jsperf.com/regex-vs-tolowercase-then-regex/4
nota al pie: expresión regular escapar de https://stackoverflow.com/a/3561711/1333402
¿Qué es largeSrc? ¿Estás seguro de que es una cadena? –
Utilice el depurador. Establezca un punto de interrupción en la línea 'var noPic = ...' y vea cuál es el tipo y el valor de 'largeSrc'. O puede poner 'console.log (typeof largeSrc, largeSrc);' antes de su línea. Pero a partir de la pregunta, parece que no está familiarizado con el depurador de JavaScript interactivo en su navegador. Recomiendo familiarizarse con esto. Por ejemplo: [Chrome DevTools tutorial] (https://developer.chrome.com/devtools). –