作者kerash (K.T)
看板Ajax
标题Re: [问题] javascript 中文排序问题
时间Tue Jun 26 11:38:44 2012
※ 引述《zzpop (给我极品其余免谈)》之铭言:
: <script>
: $(function(){
: var array = ['二','四','一','三','我','哈','王','嘿','a','f','b'];
: array.sort(function(a,b){return a.localeCompare(b)});
: for(var i=0; i<array.length; i++){
: $("body").append(array[i]+",");
: }
: });
: </script>
: 排序出来变成:
: a,b,f,一,三,二,哈,嘿,四,我,王,
以原排序
['二','四','一','三','我','哈','王','嘿','a','f','b']
转 unicode
[\u4e8c,\u56db,\u4e00,\u4e09,\u6211,\u54c8,\u738b,\u563f,\u61,\u66,\u62]
再做排序就变成
u61,u62,u66,u4e00,u4c09,u4e8c,u54c8,u563f,u56db,u6211,u738b
a b f 一 三 二 哈 嘿 四 我 王
所以排序正确..
--
[There's no undo in your life]
●~ ●~ ●~ ●~ ●~ ●~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.30.6
1F:推 edward13:localeCompare每个浏览器实作都不太一样 IE8跟FF是一二三 06/26 11:54
4F:→ kerash:是,主要看实做的方法了,但主要是说unicode比较 06/26 13:08
5F:→ zzpop:看起来单纯用JS做中文排序可能有难度了 06/26 15:02
6F:→ zzpop:所以如果要以笔画数做排列,就必须要从MSSQL着手了吗? 06/26 15:03
7F:→ zzpop:原本只是想要单纯把静态表格做成有互动效果而以 ^^ 06/26 15:04
8F:→ zzpop:还是谢谢各位大大的指点 ^^ 06/26 15:04
9F:推 mrbigmouth:如果你只是想要数字可以照顺序 先取代一下就可以了 06/26 18:32
10F:→ mrbigmouth:其他中文字的反正也看不出来吧? 06/26 18:32
11F:→ mrbigmouth:先把一->1 二->2 排完序再转回来 06/26 18:32
12F:→ kerash:他是要笔划数的话应该就不行了吧@@.. 06/26 20:12
13F:推 mrbigmouth:笔划数没可能吧 big5都不是照比划去排的不是吗? 06/26 21:38
14F:→ mrbigmouth:除非你自建资料库让电脑知道哪个字有几笔 不然不管用 06/26 21:39
15F:→ mrbigmouth:什麽语言都不可能啊 06/26 21:39
16F:→ kerash:是,只能先见对应,否则不可能,不然去抓教育部字典db XD 06/26 21:40
17F:→ kerash: ^建 06/26 21:40
18F:推 WayneFu:我之前也查过这个议题 因中文要转 unicode 所以用 js 要达 06/27 09:44
19F:→ WayneFu:到理想的排序效果目前是无解 (单靠js的情况下) 06/27 09:45
20F:推 LPH66:big5 其实是部份照笔画排 A440~C67E 一组 C940~F9D5 又一组 06/27 12:18
21F:→ LPH66:每一组当中是照笔画排的 06/27 12:18
22F:推 zzpop:了解了,谢谢各位大大 06/27 15:12
23F:→ zzpop:目前先订一组额外的标签作为排序识别,比较麻烦就是了 XD 06/27 15:13