jQuery 中文数字排序问题

顾名思义就是对中文数字:第一、第二、第三等等。

 

需要对 jquery.tablesorter 插件进行修改。

 

只要添加一个排序前的文字过滤就可以了。

 

找到 jquery.tablesorter.js 为 tablesorter 对象加入方法 

 

比如:

 

function replaceCNNumberStr(v){
        return v.replace(/\u4e00/,'1').replace(/\u4e8c/,'2').replace(/\u4e09/,'3').replace(/\u56db/,'4').replace(/\u4e94/,'5').replace(/\u516d/,'6').replace(/\u4e03/,'7').replace(/\u516b/,'8').replace(/\u4e5d/,'9').replace(/\u5341/,'10');
}

 

然后修改 sortText 和 sortTextDesc 方法,在其执行比较前替换掉相应的字符串:

 

比较烂的写法:

 

function sortText(a,b) {
    a = replaceCNNumberStr(a);
    b = replaceCNNumberStr(b);
    return ((a < b) ? -1 : ((a > b) ? 1 : 0));
};
			
function sortTextDesc(a,b) {
    a = replaceCNNumberStr(a);
    b = replaceCNNumberStr(b);
    return ((b < a) ? -1 : ((b > a) ? 1 : 0));
};	

 

当然你要是想替换大写的比如:壹贰叁肆伍陆柒捌玖拾 什么的就replace掉。

 

虽然这是一种比较烂的写法吧,但将就用到个不是很复杂的表格排序也够了。

 

顺便说一下,要是不想你打算用原来的方法排某些列,比如数字、日期什么的,只需要按照 jquery.tablesorter 的要求指定那列的类型就行了。

 

另外,请路过的高手指点一下有没有什么办法来方便的进行自定义排序?

 

多谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值