EDIT: Этот ответ 7 лет. Сегодня вы должны использовать localeCompare
.
Оригинальный ответ
Лучший способ сделать нечувствительное к регистру сравнение в JavaScript - использовать метод RegExp match () с флагом 'i'.
JavaScript: нечувствительный к регистру поиск
Когда обе сравниваемые строки являются переменными (не константами), то это немного сложнее, потому что вам нужно сгенерируйте RegExp из строки, но передача строки в конструктор RegExp может привести к неправильным совпадениям или неудачным совпадениям, если строка содержит специальные символы регулярных выражений.
Если вы интересуетесь интернационализацией, не используйте toLowerCase () или toUpperCase (), поскольку он не обеспечивает точных нечувствительных к регистру сравнений на всех языках.