汉字的排序,如果含有英文的话,各排个的,互补影响。
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;
} |