更新 'SrcJyAlist.js'

master
src48597962 2 years ago
parent 1454552ab1
commit 8680d52a68
  1. 114
      SrcJyAlist.js

@ -42,6 +42,8 @@ function getlist(data,isdir) {
return isdir ? item.is_dir : fileFilter?contain.test(item.name):item.is_dir==0; return isdir ? item.is_dir : fileFilter?contain.test(item.name):item.is_dir==0;
}) })
try{ try{
/*
if(!isdir){
list = list.sort((a, b) => { list = list.sort((a, b) => {
let reg = /^[A-z]/; let reg = /^[A-z]/;
if (reg.test(a.name) || reg.test(b.name)) { if (reg.test(a.name) || reg.test(b.name)) {
@ -64,47 +66,83 @@ function getlist(data,isdir) {
return a.name.localeCompare(b.name, "zh"); return a.name.localeCompare(b.name, "zh");
} }
}) })
/* }
*/
if(!isdir){ if(!isdir){
// 名字以特殊符号开头的应用列表 //比较没有后缀的文件名
let symbol_list = [] function fileNoExtCompare(a, b)
// 名字以中文开头的应用列表 {
let cn_list = [] // 特殊字符判定
// 名字以英文开头的应用列表 var specialChars = "!#$%^~()-+=-";
let en_list = [] var firstCharA = a.charAt(0);
// 名字以数字开头的应用列表 var firstCharB = b.charAt(0);
let num_list = [] var spA = specialChars.indexOf(firstCharA);
var spB = specialChars.indexOf(firstCharB);
if(spA != spB)
{
return (spA >= 0) ? -1 : 1
}
if(spA >= 0 && spB >= 0)
{
if(firstCharA != firstCharB)
{
return firstCharB - firstCharA;
}
else
{
return fileNoExtCompare(a.substring(1), b.substring(1)) ;
}
}
list.forEach((item) => { //判定比较内容是不是数值
//通过正则进行数据分类 var nA = parseInt(a);
if (/[\u4e00-\u9fa5]/.test(item.name)) { var nB = parseInt(b);
cn_list.push(item) if(!isNaN(nA) && !isNaN(nB))
} else if (/[a-zA-Z]/.test(item.name)) { {
en_list.push(item) return nA - nB;
} else if (/[\d]/.test(item.name)) { }
num_list.push(item)
} else { if(firstCharA == firstCharB)
symbol_list.push(item) {
} return fileNoExtCompare(a.substring(1), b.substring(1)) ;
}) }
//按照要求的方式进行数据排序重组
let newList = []; var isChFirstA = isChCode(firstCharA);
newList = newList.concat(cn_list.sort((a, b) => a.name.localeCompare(b.name))); var isChFirstB = isChCode(firstCharB);
newList = newList.concat(en_list.sort((a, b) => a.name.localeCompare(b.name))); if(isChFirstA != isChFirstB)
newList = newList.concat(num_list.sort((a, b) => { {
if (parseInt(a.name) < parseInt(b.name)) { return isChFirstA ? 1 : -1;
return -1; }
} else if (parseInt(a.name) == parseInt(b.name)) {
return 0; var aa = "1" + firstCharA;
} else { var bb = "1" + firstCharB;
return 1;
} //return a.localeCompare(b);
} return aa.localeCompare(bb,'zh-CN');
)); }
newList = newList.concat(symbol_list.sort((a, b) => a.name - b.name));
return newList; //比较带后缀的文件名
function fileWithExtCompare(a, b){
//debugger
var onlyNameA = a.substring(0, a.lastIndexOf("."));
var onlyNameB = b.substring(0, b.lastIndexOf("."));
var result = fileNoExtCompare(onlyNameA, onlyNameB);
if(result != 0){
return result;
}
//比较后缀
var extA = a.substring(a.lastIndexOf("."));
var extB = b.substring(b.lastIndexOf("."));
return extA.localeCompare(extB);
}
list.sort(function(a,b){
return fileWithExtCompare(a.name, b.name)
});
} }
*/
}catch(e){ }catch(e){
log(e.message); log(e.message);
} }

Loading…
Cancel
Save