基于JS模仿windows文件按名称排序效果
网络编程 2021-07-04 20:00www.168986.cn编程入门
这篇文章主要介绍了基于JS实现模仿windows文件按名称排序的相关资料,主要是对数字的处理操作,非常不错,具有参考借鉴价值,需要的朋友可以参考下
作个记录,主要是对数字的处理,如果数字的前面字符是相同的,则数字以值比较,而不是单个字符之间的比较。
function SortLikeWin(v1, v2) { var a = v1.name; var b = v2.name; var reg = /[0-9]+/g; var lista = a.match(reg); var listb = b.match(reg); if (!lista || !listb) { return a.localeCompare(b); } for (var i = 0, minLen = Math.min(lista.length, listb.length) ; i < minLen; i++) { //数字所在位置序号 var indexa = a.indexOf(lista[i]); var indexb = b.indexOf(listb[i]); //数字前面的前缀 var prefixa = a.substring(0, indexa); var prefixb = a.substring(0, indexb); //数字的string var stra = lista[i]; var strb = listb[i]; //数字的值 var numa = parseInt(stra); var numb = parseInt(strb); //如果数字的序号不等或前缀不等,属于前缀不同的情况,直接比较 if (indexa != indexb || prefixa != prefixb) { return a.localeCompare(b); } else { //数字的string全等 if (stra === strb) { //如果是一个数字,比较数字的后缀 if (i == minLen - 1) { return a.substring(indexa).localeCompare(b.substring(indexb)); } //如果不是一个数字,则循环跳转到下一个数字,并去掉前面相同的部分 else { a = a.substring(indexa + stra.length); b = b.substring(indexa + stra.length); } } //如果数字的string不全等,但值相等 else if (numa == numb) { //直接比较数字前缀0的个数,多的更小 return strb.lastIndexOf(numb + '') - stra.lastIndexOf(numa + ''); } else { //如果数字不等,直接比较数字大小 return numa - numb; } } } }
使用方法,Array.sort(SortLikeWin);
以上所述是长沙网络推广给大家介绍的基于JS模仿windows文件按名称排序效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指