JavaScript indexOf ignorovat Case

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