From 77ec0d535833d9677a09121fc313d29367705706 Mon Sep 17 00:00:00 2001 From: src48597962 <48597962@qq.com> Date: Tue, 14 Mar 2023 13:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20'SrcJyAliPublic.js'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SrcJyAliPublic.js | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/SrcJyAliPublic.js b/SrcJyAliPublic.js index 173a1f9a..95d51fb4 100644 --- a/SrcJyAliPublic.js +++ b/SrcJyAliPublic.js @@ -13,6 +13,58 @@ let music = new RegExp("mp3|m4a|wma|flac","i");//进入音乐播放器 let image = new RegExp("jpg|png|gif|bmp|ico|svg","i");//进入图片查看 const transcoding = {UHD: "4K 超清",QHD: "2K 超清",FHD: "1080 全高清",HD: "720 高清",SD: "540 标清",LD: "360 流畅"}; +function SortList(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; + } + } + } +} + function aliSharePlayUrl(share_id,file_id,alitoken,share_pwd){ try{ function getNowTime() {