Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Метод localeCompare() строковых значений возвращает число, указывающее, где должна находиться эта строка при сортировке (до, после или в том же самом месте, что и строка, переданная в качестве параметра). В реализациях с поддержкой Intl.Collator API этот метод просто вызывает Intl.Collator.
При сравнении большого количества строк, например при сортировке больших массивов, лучше создать объект Intl.Collator и использовать предоставляемый им метод compare().
Параметры locales и optionsПараметры locales и options изменяют поведение функции и позволяют приложениям определять язык, правила форматирования которого, следует использовать.
В реализациях, поддерживающих Intl.Collator API, эти параметры соответствуют параметрам конструктора Intl.Collator(). Реализации без поддержки Intl.Collator должны игнорировать оба параметра, возвращаемый результат сравнения полностью зависит от реализации.
compareStringСтрока, с которой сравнивается referenceStr. Все значения приводятся к строкам, поэтому отсутствие значения или значение undefined приводит к тому, что localeCompare() будет сравнивать со строкой "undefined", а это скорее всего не то, что вы ожидаете.
locales НеобязательныйСтрока с языковым тегом BCP 47 или массив таких строк. Соответствует параметру locales конструктора Intl.Collator().
В реализациях без поддержки Intl.Collator этот параметр игнорируется и обычно используется локаль устройства.
options НеобязательныйОбъект определяющий выходной формат. Соответствует параметру options конструктора Intl.Collator().
В реализациях без поддержки Intl.Collator этот параметр игнорируется.
Смотрите описание конструктора Intl.Collator() для подробностей использования параметров locales и options.
Отрицательное число если referenceStr встречается перед compareString; положительное если referenceStr встречается после compareString; 0 если они одинаковы.
В реализациях с поддержкой Intl.Collator результат эквивалентен результату вызова new Intl.Collator(locales, options).compare(referenceStr, compareString).
Возвращает число, указывающее, расположена ли referenceStr до, после или в том же самом месте, что и compareString.
Предупреждение: Не полагайтесь на точные значения -1 и 1!
Отрицательные и положительные ответы отличаются в зависимости от браузера (и версии браузера), потому что спецификация ECMAScript определяет только то, что числа должны быть положительными и отрицательными. Некоторые браузеры могут возвращать -2 или 2 или другие значения.
localeCompare() даёт возможность регистронезависимой сортировки массивов.
Параметры locales и options поддерживаются ещё не всеми браузерами.
Чтобы проверить их поддержку реализацией, используйте аргумент "i" (требование, чтобы недопустимые языковые метки отклонялись) и исключение RangeError:
Результаты, предоставляемые localeCompare(), отличаются в зависимости от языка. Для получения порядка сортировки языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) используя параметр locales:
Результат, предоставляемый localeCompare(), может быть настроен с помощью параметра options:
| ECMAScript® 2027 Language Specification # sec-string.prototype.localecompare |
| ECMAScript® 2027 Internationalization API Specification # sup-String.prototype.localeCompare |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 июн. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.