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

NodeJS中文件名数组无法筛选子串的问题排查

Node.js 文件搜索功能:目录文件名筛选无效,手动数组却正常的问题

我正在开发一个基于Node.js的“文件搜索”页面,允许用户输入字符串查找本地文件,希望用户输入子串时也能返回匹配结果(例如输入“ha”显示所有含“ha”的文件)。

当前代码如下:

app.post("/search", (req, res) => {
  // 读取目录下所有文件名,返回 ["file_01.txt", "file_02.txt"]
  const fileNames = fs.readdirSync(__dirname)
  
  const userInput = req.body.userInput;
  const subArr = fileNames.filter((str) => str.includes(userInput));
  console.log(subArr); // 返回空数组
  res.render("search.ejs");
});

但手动声明数组时却能正常工作:

const abc = ["ab", "bc", "cd"];
const subArr = abc.filter((str) => str.includes(userInput));
console.log(subArr) // 返回包含用户输入子串的数组,符合预期

为何从fileNames筛选无效,手动数组却可行?请帮忙解答,谢谢!


编辑:问题已解决!感谢各位回答,特别感谢jakub podhaisky。解决方案是将文件名和用户输入都转为小写,仅修改此部分后功能正常:

const subArr = fileNames.filter((str) => 
     str.toLowerCase().includes(userInput.toLowerCase()));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:33:18