[置顶] TinyTable中文排序的解决 -- 构建可移动,拖拉,排序,编辑的 Table组件[不到5K,可单独使用]

19 篇文章 0 订阅
15 篇文章 0 订阅
function cp(f,c){
		var g,h; f=g=f.v.toLowerCase(), c=h=c.v.toLowerCase();		
		
		//数字[包括货币符号] -- 排序
		//去掉空格,并转换成浮点数,不成功返回NaN,
		var i=parseFloat(f.replace(/(\$|\,)/g,'')), n=parseFloat(c.replace(/(\$|\,)/g,''));		
		if( !isNaN(i)&&!isNaN(n) ){
			//如果是数字执行...
			g=i,h=n ;
		}
		
		//日期 -- 排序
		//Date.parse 返回指定的日期和时间据 1970/1/1 午夜(GMT 时间)之间的毫秒数。
		//不成功返回NaN,
		i=Date.parse(f); 
		n=Date.parse(c);
		if( !isNaN(i)&&!isNaN(n) ){
			//如果是日期执行...
			g=i; h=n;
		}
		
		//汉字比较 -- 排序
		if(/^[\u0391-\uFFE5]+$/.test(f)){
			return f.localeCompare(c);
		}
//		return f.v.localeCompare(c.v);
		
		return g>h ? 1 :(g<h?-1:0)
	};

 作者并没有考虑到中文问题,对于大多数外国朋友而言可能并不要这个功能,比如ext缺省并不包含这个方案的解决...

 

这里我仅仅提供了中文排序的方案,对于其他字符,可以自行实现...

测试代码见附件:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值