Regulární výraz můžete použít s modifikátorem bez ohledu na malá a velká písmena – ne nutně tak rychle jako indexOf.
var noPic = largeSrc.search(/nopic/i);
Ne, neexistuje žádný způsob, jak tuto funkci volat, bez ohledu na velikost písmen. Možná důvod, proč váš druhý příklad nefunguje, je ten, že vám chybí volání text()
funkce.
Zkuste toto:
var search = "nopic";
var noPic = largeSrc.text().toLowerCase().indexOf(search.toLowerCase());
Všimněte si, že pokud je hledaný řetězec z uživatelského vstupu, budete muset speciální znaky regulárního výrazu escapovat.
Zde je návod, jak by to vypadalo:
var search = getUserInput();
/* case-insensitive search takes around 2 times more than simple indexOf() */
var regex = RegExp(search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "i");
var noPic = testString.search(regex);
Viz aktualizovaný jsperf:http://jsperf.com/regex-vs-tolowercase-then-regex/4
poznámka pod čarou:regexp unikající z https://stackoverflow.com/a/3561711/1333402