--- title: Intl.Collator slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator tags: - Collator - Internationalization - JavaScript translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator ---
Объект Intl.Collator
является конструктором сортировщиков — объектов, включающих языка-зависимое сравнение строк.
new Intl.Collator([locales[, options]])
Intl.Collator.call(this[, locales[, options]])
locales
Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента locales
смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_identification_and_negotiation", 1)}}. Разрешены следующие ключи расширения Unicode:
co
"big5han"
, "dict"
, "direct"
, "ducet"
, "gb2312"
, "phonebk"
, "phonetic"
, "pinyin"
, "reformed"
, "searchjl"
, "stroke"
, "trad"
и "unihan"
. Значения "standard"
и "search"
игнорируются; они заменяются свойством usage
аргумента options
(смотрите ниже).kn
"true"
и "false"
. Эта опция может быть установлена через свойство аргумента options
, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options
имеет приоритет.kf
"upper"
, "lower"
и "false"
(используется значение по умолчанию из локали). Эта опция может быть установлена через свойство аргумента options
, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options
имеет приоритет.options
Необязательный параметр. Объект с некоторыми или всеми из следующих свойств:
localeMatcher
"lookup"
и "best fit"
; значением по умолчанию является "best fit"
. Информацию по этой опции смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_negotiation", 1)}}.usage
"sort"
и "search"
; значением по умолчанию является "sort"
.sensitivity
Определяет, какие различия в строках должны приводить к ненулевому результату. Возможными значениями являются:
"base"
: считаются различными только строки, отличающиеся базовыми буквами. Примеры: a ≠ b
, a = á
, a = A
."accent"
: считаются различными только строки, отличающиеся базовыми буквами или акцентами и другими диакритическими знаками. Примеры: a ≠ b
, a ≠ á
, a = A
."case"
: считаются различными только строки, отличающиеся базовыми буквами или регистром букв. Примеры: a ≠ b
, a = á
, a ≠ A
."variant"
: считаются различными строки, отличающиеся базовыми буквами, акцентами и другими диакритическими знаками или регистром букв. Также во внимание могут приниматься и другие различия. Примеры: a ≠ b
, a ≠ á
, a ≠ A
.Значением по умолчанию является "variant"
при использовании свойства usage
, равного "sort"
, и зависит от локали при использовании свойства usage
, равного "search"
.
ignorePunctuation
true
и false
; значением по умолчанию является false
.numeric
true
и false
; значением по умолчанию является false
. Эта опция может быть установлена через свойство аргумента options
, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options
имеет приоритет. Реализации не обязаны поддерживать это свойство.caseFirst
"upper"
, "lower"
и "false"
(используется значение по умолчанию из локали); значением по умолчанию является "false"
. Эта опция может быть установлена через свойство аргумента options
, либо через ключ расширения Unicode; если предоставлены оба значения, свойство аргумента options
имеет приоритет. Реализации не обязаны поддерживать это свойство.Collator
Экземпляры Collator
наследуют следующие свойства из своего прототипа:
Экземпляры Collator
наследуют следующие методы из своего прототипа:
Collator
Следующий пример демонстрирует различные потенциальные результаты для строки, находящейся до, после или на том же самом уровне, что и другая строка:
console.log(new Intl.Collator().compare('a', 'c')); // → отрицательное значение console.log(new Intl.Collator().compare('c', 'a')); // → положительное значение console.log(new Intl.Collator().compare('a', 'a')); // → 0
Обратите внимание, что результат, показанный в коде выше, может сильно различаться в зависимости от браузера и его версии. Происходит это потому, что возвращаемые значения зависят от реализации. То есть, спецификация требует только чтобы при следовании строки до значение было отрицательным, а после — положительным.
locales
Результаты, предоставляемые функцией {{jsxref("Collator.prototype.compare()")}} сильно различаются в зависимости от языка. Для получения порядка сортировки языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент locales
:
// В немецком буква ä идёт рядом с буквой a console.log(new Intl.Collator('de').compare('ä', 'z')); // → отрицательное значение // В шведском буква ä следует после буквы z console.log(new Intl.Collator('sv').compare('ä', 'z')); // → положительное значение
options
Результат, предоставляемый функцией {{jsxref("Collator.prototype.compare()")}}, может быть настроен с помощью аргумента options
:
// В немецком буква a является базовой для буквы ä console.log(new Intl.Collator('de', { sensitivity: 'base' }).compare('ä', 'a')); // → 0 // В шведском буквы ä и a являются двумя разными базовыми буквами console.log(new Intl.Collator('sv', { sensitivity: 'base' }).compare('ä', 'a')); // → положительное значение
Спецификация | Статус | Комментарии |
---|---|---|
{{SpecName('ES Int 1.0', '#sec-10.1', 'Intl.Collator')}} | {{Spec2('ES Int 1.0')}} | Изначальное определение. |
{{Compat}}