JavaScript排序中文(汉字)示例详解
序
在网页上显示列表时,通常需要对列表进行排序:按修改/访问时间、按区域和按名称。
对于中文列表,按名称排序就是按拼音排序,不能简单的通过比较字符串——' 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或者邮箱删除。