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 September 2017.
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
-
特定のロケールにおける比較方法の変化形を指定します。指定可能な値は次の通りです。
big5han
compat
dict
direct
ducet
eor
gb2312
phonebk
(ドイツ語のみ対応)phonetic
pinyin
reformed
searchjl
stroke
trad
unihan
zhuyin
メモ: このオプションは
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
-
特定のロケールにおける比較方法の変化形を指定します。指定可能な値は次の通りです。
big5han
compat
dict
direct
ducet
eor
gb2312
phonebk
(ドイツ語のみ対応)phonetic
pinyin
reformed
searchjl
stroke
trad
unihan
zhuyin
メモ: このオプションは 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-the-intl-collator-constructor |