Как сказано в последних комментариях, string::localCompare
поддерживает нечувствительные к регистру сравнения (среди других мощных вещей).
Вот простой пример
'xyz'.localeCompare('XyZ', undefined, { sensitivity: 'base' }); // returns 0
И общую функцию, которую вы могли бы использовать
function equalsIgnoringCase(text, other) {
text.localeCompare(other, undefined, { sensitivity: 'base' }) === 0;
}
Обратите внимание, что вместо undefined
вы, вероятно, должны ввести конкретный язык, с которым работаете. Это важно, как указано в документах MDN
на шведском языке, а а - отдельные базовые буквы
Параметры чувствительности
Поддержка браузера
С момента публикации UC Browser для Android и Opera Mini не поддерживает locale и параметры . Пожалуйста, проверьте https://caniuse.com/#search=localeCompare для актуальной информации.