业务要求:要将汉字部分整合按照数字排列
达到以下效果:
首先将汉字和数字分离,如果是纯汉字则按localeCompare比较;如果混有数字则先比较汉字部分,数字部分再比较。
代码:
{field:'metestdname',title:'信号名',width:180,sortable:true,
sorter:function(a,b){
a1 = a.replace(/[0-9]+/g,"");
a2 = a.replace(/[^0-9]/ig,"");
b1 = b.replace(/[0-9]+/g,"");
b2 = b.replace(/[^0-9]/ig,"");
if (a1 == b1){
if(a2!=''&b2!=''){
var number1 = parseFloat(a2);
var number2 = parseFloat(b2);
return (number1 > number2 ? 1 : -1);
}else{
return a1.localeCompare(b1);
}
} else {
return a1.localeCompare(b1);
}
}
},