JasonGrass / rename

在线文件批量重命名
https://rename.jgrass.xyz/
GNU Affero General Public License v3.0
454 stars 45 forks source link

【建議】文件名排序方式我認爲需要改一下 #14

Open luiguangguan opened 1 month ago

luiguangguan commented 1 month ago

以下是同一組文件在Windows中的排序和在rename中的排序

Windows

image

rename

image

luiguangguan commented 1 month ago
function naturalSort(arr: string[]): string[] {
  return arr.sort((a, b) => {
    // 提取 a 和 b 中的所有數字
    const numsA = a.match(/\d+/g)?.map(Number) || [];
    const numsB = b.match(/\d+/g)?.map(Number) || [];

    // 比較提取的數字
    for (let i = 0; i < Math.min(numsA.length, numsB.length); i++) {
      if (numsA[i] !== numsB[i]) {
        return numsA[i] - numsB[i];
      }
    }

    // 如果提取的數字部分相等,則比較數字的數量(長度)
    return numsA.length - numsB.length;
  });
}

这样实现?

JasonGrass commented 1 month ago

重命名的目的之一,就是将这些长度不一的文件名,变成一样的长度。

用另一个方式处理了这个问题:添加修改之后的文件名的排序(预览的排序),可以检查最终生成的结果,是否满足排序要求。

image

luiguangguan commented 1 month ago

哦,是个不错的操作,我没想到,多谢