2

JavaScript ES6/Harmony に、言語固有の並べ替え/照合が追加されました。

現在、ブラウザによってサポートが異なるため、Chrome では、使用する言語と使用しない言語があることがわかりました。

しかし、私が問題を抱えているのは、フィンランド語、日本語、スペイン語、スウェーデン語など、テキストを並べ替える方法が複数あり、ブラウザでサポートされている方法を見つけることです。

4

1 に答える 1

1

Intl.Collator.supportedLocalesOfロケールのリストを受け入れ、サポートするものを返しますが、サポートをテストする前に各ロケールから Unicode 拡張機能を削除します。だからあなたがするなら

Intl.Collator.supportedLocalesOf("de-u-co-phonebk")

ロケールはサポートされてdeいましたが、電話帳の並べ替えはサポートされていませんでした["de-u-co-phonebk"]。おそらくさらに悪いことです (deロケールのサポートは、電話帳の並べ替えのサポートをほとんど常に意味するのではないかと思うからです)

Intl.Collator.supportedLocalesOf("de-u-co-phonebm")

["de-u-co-phonebm"]どちらが潜在的に本当に悪いかがわかります。

それが終わったので、あなたがしなければならないことは、ソート順に影響を与える可能性のあるすべての可能なUnicodeロケール拡張を指定して、すべてのロケールのコレーターを個別に作成しようとすることだと思います。次にresolvedOptions().locale、コレーターを調べて、Unicode拡張が転送されたかどうかを確認します以上。例えば、

Intl.Collator("de-u-co-phonebk").resolvedOptions().locale

戻ります"de-u-co-phonebk"が、

Intl.Collator("de-u-co-phonebm").resolvedOptions().locale

戻り"de"ます。

于 2016-10-26T22:13:43.410 に答える