你的位置:首页 > 软件开发 > Java > js实现仿windows文件按名称排序

js实现仿windows文件按名称排序

发布时间:2016-06-29 11:00:07
作个记录,主要是对数字的处理,如果数字的前面字符是相同的,则数字以值比较,而不是单个字符之间的比较。 1 function SortLikeWin(v1, v2) { 2 var a = v1.name; 3 var b = v2.name; 4 ...

作个记录,主要是对数字的处理,如果数字的前面字符是相同的,则数字以值比较,而不是单个字符之间的比较。

 1     function SortLikeWin(v1, v2) { 2       var a = v1.name; 3       var b = v2.name; 4       var reg = /[0-9]+/g; 5       var lista = a.match(reg); 6       var listb = b.match(reg); 7       if (!lista || !listb) { 8         return a.localeCompare(b); 9       }10       for (var i = 0, minLen = Math.min(lista.length, listb.length) ; i < minLen; i++) {11         //数字所在位置序号12         var indexa = a.indexOf(lista[i]);13         var indexb = b.indexOf(listb[i]);14         //数字前面的前缀15         var prefixa = a.substring(0, indexa);16         var prefixb = a.substring(0, indexb);17         //数字的string18         var stra = lista[i];19         var strb = listb[i];20         //数字的值21         var numa = parseInt(stra);22         var numb = parseInt(strb);23         //如果数字的序号不等或前缀不等,属于前缀不同的情况,直接比较24         if (indexa != indexb || prefixa != prefixb) {25           return a.localeCompare(b);26         }27         else {28           //数字的string全等29           if (stra === strb) {30             //如果是最后一个数字,比较数字的后缀31             if (i == minLen - 1) {32               return a.substring(indexa).localeCompare(b.substring(indexb));33             }34             //如果不是最后一个数字,则循环跳转到下一个数字,并去掉前面相同的部分35             else {36               a = a.substring(indexa + stra.length);37               b = b.substring(indexa + stra.length);38             }39           }40             //如果数字的string不全等,但值相等41           else if (numa == numb) {42             //直接比较数字前缀0的个数,多的更小43             return strb.lastIndexOf(numb + '') - stra.lastIndexOf(numa + '');44           }45           else {46             //如果数字不等,直接比较数字大小47             return numa - numb;48           }49         }50       }51     }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:js实现仿windows文件按名称排序

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。