Intl.Collator() コンストラクター
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2017年9月.
Intl.Collator() コンストラクターは、言語を考慮した文字列の比較を可能にする
Intl.Collator オブジェクトを生成します。
試してみましょう
console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("de").compare));
// Expected output: Array ["a", "ä", "z", "Z"]
console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("sv").compare));
// Expected output: Array ["a", "z", "Z", "ä"]
console.log(
["Z", "a", "z", "ä"].sort(
new Intl.Collator("de", { caseFirst: "upper" }).compare,
),
);
// Expected output: Array ["a", "ä", "Z", "z"]
構文
new Intl.Collator();
new Intl.Collator(locales);
new Intl.Collator(locales, options);
引数
locales省略可-
任意。 BCP47 言語タグの文字列またはその配列。
locales引数の一般的な形式や解釈については Intl のページを参照してください。次の Unicode 拡張キーが使用可能です。
メモ: これらのキーは通常、
optionsでも設定することができます(下記でリストアップします)。両方が設定されている場合は、optionsのプロパティが優先されます。co-
特定のロケールにおける比較方法の変化形を指定します。指定可能な値は次の通りです。
big5hancompatdictdirectduceteorgb2312phonebk(ドイツ語のみ対応)phoneticpinyinreformedsearchjlstroketradunihanzhuyinメモ: このオプションは
optionsプロパティ "collation" からも設定できます。
kn-
"1" < "2" < "10" のような数値照合順序を使用するかどうかを指定します。設定可能な値は "
true" と "false" です。 このオプションは、optionsの "numeric" プロパティでも設定することができます。 kf-
大文字と小文字のどちらを先に並べるかを指定します。使用できる値は "
upper", "lower", "false" (ロケールの既定値を使用)です。このオプションは、optionsの "caseFirst" プロパティでも設定することができます。
options省略可-
任意。以下のプロパティの一部またはすべてを持つオブジェクトです。
localeMatcher-
ロケールの照合に使用するアルゴリズム。指定可能な値は "
lookup" と "best fit" で、既定値は "best fit" です。このオプションの詳細については Intl のページを参照してください。 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
既定値は、
usageが "sort" の場合は "variant"、 "search" の場合はロケールに依存します。 - "
ignorePunctuation-
句読点を無視するかどうか。指定可能な値は
trueまたはfalseで、既定値はfalseです。 numeric-
"1" < "2" < "10" のように数値として比較を行うかどうかです。可能な値は
trueおよびfalseです。既定値はfalseです。メモ: このオプションは Unicode 拡張キーの
knでも設定することができます。両方が指定された場合は、このoptionsのプロパティが優先されます。 caseFirst-
大文字と小文字のどちらを先に並べるかです。指定可能な値は "
upper", "lower", "false" (ロケールの既定の動作)です。大文字と小文字のどちらを先に並べるかはoptionsのプロパティでも Unicode 拡張キーでも指定可能です。両方で指定された場合、optionsプロパティの指定が優先されます。メモ: このオプションは Unicode 拡張キーの
kfでも設定することができます。両方が指定された場合は、このoptionsのプロパティが優先されます。 collation-
特定のロケールにおける比較方法の変化形を指定します。指定可能な値は次の通りです。
big5hancompatdictdirectduceteorgb2312phonebk(ドイツ語のみ対応)phoneticpinyinreformedsearchjlstroketradunihanzhuyinメモ: このオプションは Unicode 拡張キーの
coでも設定することができます。両方が指定された場合は、このoptionsのプロパティが優先されます。
例
>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
上記のコードで示された結果は、ブラウザーやブラウザーのバージョンによって異なる可能性があることに注意してください。これは、値が実装固有のものであるためです。つまり、仕様では前後の値が負と正の値であることだけが要求されています。
仕様書
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-intl-collator-constructor> |