汉字的排序,如果含有英文的话,各排个的,互补影响。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<
body
>
<
select 
class
=
"sel" 
id
=
"ect"
>
    
<
option 
value
=
"蛋蛋"
>蛋蛋</
option
>
    
<
option 
value
=
"笨笨"
>笨笨</
option
>
    
<
option 
value
=
"小明"
>小明</
option
>
    
<
option 
value
=
"笨蛋"
>笨蛋</
option
>
    
<
option 
value
=
"汐"
>汐</
option
>
    
<
option 
value
=
"Jack"
>Jack</
option
>
    
<
option 
value
=
"Daniel"
>Daniel</
option
>
    
<
option 
value
=
"克杰"
>克杰</
option
>
    
<
option 
value
=
"信宗"
>信宗</
option
>
    
<
option 
value
=
"fido"
>fido</
option
>
    
<
option 
value
=
"tom"
>tom</
option
>
    
<
option 
value
=
"jerry"
>jerry</
option
>  
</
select
>
<
input 
type
=
"submit" 
value
=
"排序" 
onClick
=
"order()"
/>
</
body
>

javascript的部分:

1
2
3
4
5
6
7
8
9
10
11
12
<script src=
"jquery-1.11.2.js"
></script>
<script type=
"text/javascript"
>
    
function 
order(){
        
$(
"select option"
).sort(
function
(a,b){ 
            
var 
aText = $(a).text(); 
            
var 
bText = $(b).text(); 
            
if
(
typeof 
aText ==
"string" 
&& 
typeof 
bText == 
"string"
){
                
return 
aText.localeCompare(bText);
            
        
}).appendTo(
'select'
) ;   
    
}
</script>

注:localeCompare() 方法用于字符串编码的排序

  sort() 方法用于数组元素的排序

通讯录排序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function 
pySegSort(arr,empty) {
    
if
(!String.prototype.localeCompare)
        
return 
null
;
      
    
var 
letters = 
"*ABCDEFGHJKLMNOPQRSTWXYZ"
.split(
''
);
    
var 
zh = 
"阿八嚓哒妸发旮哈讥咔垃麻拏噢妑七呥扨它穵夕丫帀"
.split(
''
);
      
    
var 
segs = [];
     
    
var 
curr;
    
$.each(letters, 
function
(i,n){
        
curr = {letter: 
this
, data:[]};
        
$.each(arr, 
function
(k,v) {
            
if
((!zh[i-1] || zh[i-1].localeCompare(v.text) <= 0) && v.text.localeCompare(zh[i]) == -1) {
                
curr.data.push(
this
);
            
}
        
});
        
if
(empty || curr.data.length) {
            
py.push(
this
);
            
segs.push(curr);
            
curr.data.sort(
function
(a,b){
                
return 
a.text.localeCompare(b.text);
            
});
        
}
    
});
     
    
return 
segs;
}