正则表达式从路径中排除文件夹

prg*_*rmr 0 javascript regex regex-lookarounds

我有一堆这样的文件

/foo/bar/specs/d.js
/foo/bar/spec/d.js
/foo/bar/specs/v.js
/foo/bar/specs/v.js
/node_modules/bar/specs/v.js
Run Code Online (Sandbox Code Playgroud)

我需要一个正则表达式,它将排除node_modules下的所有内容

像这样:

(?!node_modules)\/.*\/specs\/.*\.js
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用

感谢你的帮助。

Kev*_*ian 5

大概是这样的吗?

let arr = [
    '/foo/bar/specs/d.js',
    '/foo/bar/specs/d.js',
    '/foo/bar/specs/v.js',
    '/foo/bar/specs/v.js',
    '/node_modules/bar/specs/v.js'
]

arr.forEach(s => console.log(/^\/(?!node_modules).*\/.*\/specs\/.*\.js/.test(s)))
Run Code Online (Sandbox Code Playgroud)