Require.context 正则表达式问题

Require.context regex issue

根据正则表达式获取文件的require.context函数。

我想将以表达式开头的内容添加到这些表达式中,以便只获取以 1-**.js 开头的文件。我该怎么做?

 const folders = require.context("@/views", true, /^1-.*\.js$/, "lazy")

// 1-asd.js => true
// 2-asd.js => false
// 1-bsd.js => true

正则表达式引擎收到的路径如下所示:

引擎正则表达式获取的输入字符串包含文件夹和文件名部分。因此,为了确保只在文件名的开头匹配 1-,您需要匹配到最后一个斜杠:

/^(?:.*\/)?1-[^\/]*\.js$/

或者,如果 / 始终出现在路径中,您可以将正则表达式缩短为

/^.*\/1-[^\/]*\.js$/
\/1-[^\/]*\.js$

详情:

  • ^ - 字符串开头
  • (?:.*\/)? - 任意零个或多个除换行符之外的字符的可选序列,然后 /
  • 1- - 1- 字符串
  • [^\/]* - /
  • 以外的零个或多个字符
  • \.js$ - .js 在字符串末尾。

regex demo