手机版

JavaScript排序中文(汉字)示例详解

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

在网页上显示列表时,通常需要对列表进行排序:按修改/访问时间、按区域和按名称。

对于中文列表,按名称排序就是按拼音排序,不能简单的通过比较字符串——' a'' b' ——来实现。

例如,比较“北京”和“上海”实际上是比较“北京”和“上海”;把“北京”和“背景”相比较,实际上是把“北京和北京”和“北京”相比较。

一般我们需要得到字符串的拼音,然后比较它们的拼音。

实现方法

JavaScript提供本地化的文本排序,例如根据拼音对中文进行排序,不需要程序显示比较字符串拼音。

String.prototype.localeCompare基本上可以按拼音排序,不考虑复调。

在不出意外的情况下,所有支持localeCompare的浏览器都是正常的。最近更新Chrome到58.0.3029.110,突然发现中文排序异常。

//正常情况下应该回到1,拼音jia第一,kai最后。localeCompare('驱动器');//get-1;//Chrome 58.0.3029.110返回-1,其他浏览器正常。//确认后,localeCompare需要指定locales参数“on”。localeCompare ('driving ',' zh ');//get 1

在Chrome下传递locales参数可以得到正常的预期结果

边缘浏览器支持本地比较

火狐浏览器支持localeCompare

IE 11浏览器支持localeCompare

其他浏览器对localesCompare支持也很友好,目前不需要显式传递locale。浏览器支持参考developer.mozilla.org

摘要

以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持。

版权声明:JavaScript排序中文(汉字)示例详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。