ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript が漢字をソートする方法の詳細な例

JavaScript が漢字をソートする方法の詳細な例

黄舟
黄舟オリジナル
2017-06-18 11:47:572936ブラウズ

Sort は日常の開発で頻繁に遭遇する機能であり、次の記事では主に JavaScript を使用して中国語 (漢字) を並べ替える方法について、サンプルコードを通じて詳しく紹介します。誰にとっても一定の参考と学習価値があるので、それを必要とする友人が編集者をフォローして見ることができます。

はじめに

Web ページにリストを表示する場合、変更/アクセス時間順、地域順、名前順など、リストを並べ替える必要があることがよくあります。

中国語のリストの場合、名前による並べ替えはピンインによる並べ替えと同じであり、文字列比較—​​—「a」>「b」——だけでは実現できません。

たとえば、「北京」と「上海」を比較することは、実際には「北京」と「上海」を比較することになり、「北京」と「背景」を比較することは、実際には「北京」と「北京」を比較することになります。

通常、文字列のピンインを取得して、それぞれのピンインを比較する必要があります。

実装方法

JavaScriptは、プログラムが文字列のピンイン比較を表示することなく、ピンインに従って中国語をソートするなど、ローカライズされたテキストのソートを提供します。

<a href="http://www.php.cn/wiki/57.html" target="_blank">String<code><a href="http://www.php.cn/wiki/57.html" target="_blank">String</a>.prototype.localeCompare.prototype.localeCompare ポリフォニック文字を考慮せずに、基本的にはピンインによる完璧なソートを実現します。

事故がない限り、localeCompareをサポートするすべてのブラウザは正常に動作します。最近、Chrome を 58.0.3029.110 にアップデートしたところ、突然中国語のソートが正常ではないことに気づきました。


// 正常应该返回 1, 拼音 jia 在前, kai 在后
&#39;开&#39;.localeCompare(&#39;驾&#39;);
// 得到
-1;
 
// Chrome 58.0.3029.110 下返回 -1, 其他浏览器正常
 
// 确认之后是 localeCompare 需要明确指定 locales 参数
&#39;开&#39;.localeCompare(&#39;驾&#39;, &#39;zh&#39;);
// 得到
1


通常の期待される結果を得るには、Chrome で locales パラメータを渡します

Edge ブラウザは localeCompare をサポートします

Firefox ブラウザは localeCompare をサポートします

IE 11 ブラウザーのサポート localeCompare

他のブラウザも localeCompare のサポートに対応しています。現時点では、ブラウザのサポートについては、developer.mozilla.org

概要

を参照してください。

以上がJavaScript が漢字をソートする方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。