利用JavaScript对中文(汉字)进行排序实例详解
前言
在网页上展示列表时经常需要对列表进行排序:按照修改/访问时间排序、按照地区、按照名称排序。
对于中文列表按照名称排序就是按照拼音排序,不能简单通过字符串比较—— ‘a' > ‘b'——这种方式来实现。
比如比较 ‘北京' vs ‘上海',实际是比较 ‘běijīng' vs ‘shànghǎi';比较 ‘北京' vs ‘背景',实际是比较 ‘běijīng' vs ‘bèijǐng'。
一般需要获取到字符串的拼音,再比较各自的拼音。
实现方法
JavaScript 提供本地化文字排序,比如对中文按照拼音排序,不需要程序显示比较字符串拼音。
String.prototype.localeCompare
在不考虑多音字的前提下,基本可以完美实现按照拼音排序。
在没有出现意外的情况下,各个支持 localeCompare 的浏览器都很正常。最近将 Chrome 更新到 58.0.3029.110,突然发现中文排序不正常。
// 正常应该返回 1, 拼音 jia 在前, kai 在后 '开'.localeCompare('驾'); // 得到 -1; // Chrome 58.0.3029.110 下返回 -1, 其他浏览器正常 // 确认之后是 localeCompare 需要明确指定 locales 参数 '开'.localeCompare('驾', 'zh'); // 得到 1
在 Chrome 下传递 locales 参数才能获得正常预期结果
Edge 浏览器支持 localeCompare
Firefox 浏览器支持 localeCompare
IE 11 浏览器支持 localeCompare
其他浏览器对 localeCompare 支持也很友好,目前也不需要明确传递 locales,浏览器支持参考 developer.mozilla.org
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
js仿淘宝的拼音检索特效代码
以下是HTML网页特效代码,点击运行按钮可查看效果 js仿taobao效果 *{ margin:0;padding:0;} body{ font:normal 12px Verdana, Arial, Helvetica, sans-serif; text- align:center;} #warpper{ position:absolute; left:100px; top:100px;} h5{ float:left;} a{ text-decoration:underline; curso
-
JS实现中文汉字按拼音排序的方法
本文实例讲述了JS实现中文汉字按拼音排序的方法.分享给大家供大家参考,具体如下: 代码1,拼音排序: var array = ['武汉', '北京', '上海', '天津']; var resultArray = array.sort( function compareFunction(param1, param2) { return param1.localeCompare(param2,"zh"); } ); console.log(resultArray); 火狐浏览器 resu
-
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
具体技术 1.使用GB编码与UNICODE的转换 2.数组关联排序 注意:GB编码 库地址 http://demo.jb51.net/jslib/qswhGB2312.js 代码(demo写的很简陋) 复制代码 代码如下: <script> //power by 毛绒猫猫 liuyutong@baidu.com var strGB="啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬 扳般颁板版扮拌伴瓣半
-
用正则表达式判断字符串是汉字还是拼音的js函数代码
复制代码 代码如下: function checkFormat(str) { if (escape(str).indexOf("%u")!=-1) alert("不能含有汉字"); else if(str.match(/\D/)!=null) { alert('不能含有字母'); } }
-
Extjs Gird 支持中文拼音排序实现代码
复制代码 代码如下: <script type="text/javascript"> Ext.data.Store.prototype.applySort=function(){//重载applySort if(this.sortInfo && !this.remoteSort){ var s = this.sortInfo, f=s.field; var st=this.fields.get(f).sortType; var fn=function(r1,
-
JavaScript实现拼音排序的方法
一般情况下,大家会使用下面的方法来进行汉字的拼音排序 复制代码 代码如下: var list = [ '王', '张','李']; list.sort(function (a, b) { return a.localeCompare(b); }); localeCompare() :用本地特定的顺序来比较两个字符串. 通过localeCompare这个方法来进行拼音排序的不可靠之处在于: 1. 很依赖中文操作系统 2. 很依赖浏览器的内核 也就是说,如果你的网站访问者是通过非中文系统,或者非IE
-
javaScript对文字按照拼音排序实现代码
复制代码 代码如下: <title>JavaScript对文字按照拼音排序</title><SCRIPT type="text/javascript">function defaultSort(){var a="zhongguo,daguo,世界,中国,超级大国";a=a.split(",");a.sort();alert(a);}function cusSort(){var a="zhongguo,
-
javascript对中文按照拼音排序代码
今天在代码中用到了对中文按照拼音排序,咨询了群里面的大神后得到了下面的代码: var arr = ["张三","李四","王五","阿三"]; document.write(arr+"<br/>"); arr.sort(function(a,b){ return a.localeCompare(b); }); document.write(arr);
-
JavaScript 给汉字排序实例代码
比如 var arr = ["中","华","人","民","共","和","国"],在执行 sort 方法后结果为 :中,人,共,华,和,国,民,既不是拼音也不是笔划数量的排序. 以前很少留意过 localeCompare 方法,手册中说它执行时返回一个值,指出在当前的区域设置中两个字符串是否相同.返回值有三种:-1,0,1,刚好是 sort 方法参数所需要
-
js 淘宝首页的拼音排序效果
无标题文档 dl,dd,dt { margin:0; padding:0; } #qq { width:600px; overflow:hidden; height:500px; margin:0 auto; background:#fafafa; padding:15px; } #qq span { display:block; width:80px; height:25px; line-height:25px; float:left; } dl { width:500px; line-hei
-
js汉字转拼音实现代码
代码下载:复制以下代码到PinYin.js即可.调用方法: var pinyin = codefans_net_CC2PY("你好吗");PinYin.js 复制代码 代码如下: var PinYin = {"a":"\u554a\u963f\u9515","ai":"\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9
-
js实现汉字排序的方法
本文实例讲述了js实现汉字排序的方法.分享给大家供大家参考.具体如下: <script type="text/javascript"> <!-- function startSort(){ var a=document.getElementById('s').value; a=a.split(',') a.sort(); document.getElementById('r1').value=a; a.sort(function(a,b){return a.local
随机推荐
- 简介JavaScript中Math.cos()余弦方法的使用
- AngularJS基础 ng-srcset 指令简单示例
- IIS 7.5 设置允许下载exe文件的解决方法
- SpringMVC接收多个对象的4种方法
- ajaxToolkit:ModalPopupExtender演示及实现代码
- IE浏览器兼容Firefox的JS脚本的代码
- JS获取地址栏参数的两种方法(简单实用)
- Python实现从url中提取域名的几种方法
- C#中var关键字用法分析
- javascript复制粘贴与clipboardData的使用
- 走出房间Flash高智商,建议大家试试娱乐一下 原创
- javascript检测浏览器flash版本的实现代码
- jquery 截取字符串的实现
- java解析dbf之通过javadbf包生成和读取dbf文件
- Android UI设计系列之自定义SwitchButton开关实现类似IOS中UISwitch的动画效果(2)
- 13个PHP函数超实用
- SESSION存放在数据库用法实例
- 快速排序算法在Java中的实现
- vue中动态绑定表单元素的属性方法
- C语言单链表实现方法详解