Intl.Collator() コンストラクター

Intl.Collator オブジェクトは、言語を考慮した文字列の比較を可能にするオブジェクトである collator のコンストラクターです。

構文

new Intl.Collator([locales[, options]])

引数

locales

任意。 BCP47 言語タグの文字列またはその配列。 locales 引数の一般的な形式や解釈については Intl のページを参照してください。次のUnicode拡張キーが使用可能です。

co
特定のロケールにおけるバリアントの比較方法を指定します。指定可能な値には "big5han", "dict", "direct", "ducet", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan" があります。なお "standard" と"search" については、 options 引数の usage プロパティによって代替されるため無視されます (下記参照)。
kn
"1" < "2" < "10" のように数値として比較を行うかどうかです。可能な値は "true" および "false" です。このオプションは options プロパティや、 Unicode 拡張キーで指定できます。両方で指定された場合、 options プロパティの指定が優先されます。
kf
大文字と小文字のどちらを先に並べるかを指定します。指定可能な値は "upper", "lower", "false" (ロケールの既定値を使用) です。このオプションは options プロパティや、 Unicode 拡張キーで指定できます。両方で指定された場合、 options プロパティの指定が優先されます。
options

任意。次のプロパティの一部またはすべてを持つオブジェクトです。

localeMatcher
ロケール文字列のマッチングに使用するアルゴリズム。指定可能な値は "lookup" と "best fit" で、既定値は "best fit" です。このオプションの詳細については Intl のページを参照してください。
usage
ソート用の比較をするのか、文字列検索用の比較をするのか。指定可能な値は "sort" または "search" で、既定値は "sort" です。
sensitivity

どの程度の文字の違いまでを区別するかです。以下の値を指定可能です。

  • "base": ベース文字が異なれば、異なる文字であると評価します。 例: a ≠ ba = áa = A
  • "accent": ベース文字が異なるか、またはアクセントその他の発音区別符号が異なれば、異なる文字であると評価します。 例: a ≠ ba ≠ áa = A
  • "case": ベース文字が異なるか、ベース文字が同一でも大文字小文字が異なれば、異なる文字であると評価します。 例: a ≠ ba = áa ≠ A
  • "variant": ベース文字、アクセントその他の発音区別符号、および大文字小文字のいずれかが異なれば、異なる文字であると評価します。他の違いも考慮されるかもしれません。 例: a ≠ ba ≠ áa ≠ A

既定値は、 usage が "sort" の場合は "variant"、 "search"の場合はロケール依存です。

ignorePunctuation
句読点を無視するかどうか。指定可能な値は true または false で、既定値は false です。
numeric
"1" < "2" < "10" のように数値として比較を行うかどうかです。可能な値は true および false です。既定値は false です。このオプションは options プロパティや、 Unicode 拡張キーで指定できます。両方で指定された場合、 options プロパティの指定が優先されます。実装はこのプロパティに対応することが要件とはされていません。
caseFirst
大文字と小文字のどちらを先に並べるかです。指定可能な値は "upper", "lower", "false" (ロケールの既定の動作) です。大文字と小文字のどちらを先に並べるかは options プロパティでも Unicode 拡張キーでも指定可能です。両方で指定された場合、 options プロパティの指定が優先されます。実装はこのプロパティに対応することが要件とはされていません。

Collator の使用

次の例では、文字列が別の文字列の前であるか、後であるか、または同じレベルで発生したのかの様々な可能性のある結果を示しています。

console.log(new Intl.Collator().compare('a', 'c')); // → a negative value
console.log(new Intl.Collator().compare('c', 'a')); // → a positive value
console.log(new Intl.Collator().compare('a', 'a')); // → 0

上記のコードで示された結果は、ブラウザーやブラウザーのバージョンによって異なる可能性があることに注意してください。これは、値が実装固有のものであるためです。つまり、仕様では前後の値が負と正の値であることだけが要求されています。

仕様書

仕様書
ECMAScript Internationalization API (ECMA-402)
Intl.Collator constructor の定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報