You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript结合XMLHTTPRequest/Fetch获取匹配模式的服务器文件名

用JavaScript筛选符合通配模式的文件名列表

完全可以实现,根据运行环境的不同,分为两种处理方式:

1. Node.js服务器端直接操作文件系统

如果是在Node.js环境下直接读取服务器上的文件目录,可以借助内置的fs模块先获取目录下的所有文件,再用正则表达式匹配符合FileName_WC.ext模式的文件名(其中WC代表日期字符串)。

代码示例(异步方式)

const fs = require('fs').promises;

async function getMatchingFiles(dirPath) {
  try {
    const allFiles = await fs.readdir(dirPath);
    // 正则匹配:以FileName_开头、.ext结尾,中间为含数字/横杠的日期格式字符串
    // 若日期格式有固定规则(如YYYYMMDD),可调整正则更精准
    const pattern = /^FileName_[\d\-]+.ext$/;
    return allFiles.filter(file => pattern.test(file));
  } catch (err) {
    console.error('读取目录失败:', err);
    return [];
  }
}

// 调用示例:传入目标目录路径
getMatchingFiles('./your-target-dir').then(matchingFiles => {
  console.log('符合条件的文件:', matchingFiles);
});

代码示例(同步方式)

const fs = require('fs');

function getMatchingFilesSync(dirPath) {
  try {
    const allFiles = fs.readdirSync(dirPath);
    const pattern = /^FileName_[\d\-]+.ext$/;
    return allFiles.filter(file => pattern.test(file));
  } catch (err) {
    console.error('读取目录失败:', err);
    return [];
  }
}

// 调用示例
const matchingFiles = getMatchingFilesSync('./your-target-dir');
console.log('符合条件的文件:', matchingFiles);

2. 前端已获取文件名列表的场景

如果是前端通过接口拿到了服务器返回的文件名数组,直接对数组进行筛选即可,无需操作文件系统:

// 假设从接口获取的文件名列表
const fileList = ['FileName_20240520.ext', 'FileName_1.ext', 'FileName_2024-05-21.ext', 'OtherFile.txt'];
const pattern = /^FileName_[\d\-]+.ext$/;
const matchingFiles = fileList.filter(file => pattern.test(file));

console.log('符合条件的文件:', matchingFiles);

正则说明

上面的正则是通用版,可匹配包含数字、横杠的常见日期格式。如果你的日期格式有固定规则(比如仅8位数字的YYYYMMDD),可以把正则改成/^FileName_\d{8}.ext$/,匹配会更精准。

内容的提问来源于stack exchange,提问作者Mal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:16:27