首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript regex忽略chokidar的子目录

javascript regex忽略chokidar的子目录
EN

Stack Overflow用户
提问于 2016-12-05 05:07:06
回答 1查看 909关注 0票数 4

目前使用Chokidar对文件结构进行文件监视。我需要查看特定目录,但忽略该目录中创建的任何子目录。

例如,

/var/app/current/somedir

我会看到在中创建的任何文件。但是,如果在目录中创建了某个目录,那么我希望递归地忽略它,从而忽略它下创建的任何其他内容。

代码语言:javascript
复制
chokidar.watch(configuration.theDir, {
        ignored: `/\\var\\app\\current\\somedir\\<match anything here, except other directories!>\\<anything here would be ignored and further down...>/`,
        awaitWriteFinish: {
            stabilityThreshold: 2000,
            pollInterval: 100
        }
}).on('add', (file, details) => {
    // console.log(file, path);
});

对于我来说,找到正确实现正则表达式的方法是真实的。不幸的是,创建的目录是随机的,名称事先不知道。这能做到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-05 05:40:04

这个regex表达式将匹配是一个目录或属于基的子目录(由下面的斜杠/定义的目录)的所有内容。

对于您的示例,基础是:/var/app/current/somedir

Regex:/^\/var\/app\/current\/somedir\/.*[\/].*$/i

测试:

代码语言:javascript
复制
var tests = [
    '/var/app/current/somedir/fileOrFolder.txt',
    '/var/app/current/somedir/fileOrFolder/',
    '/var/app/current/somedir/fileOrFolder/ssads/sad.s',
    '/var/app/current/somedir/fileOrFolder.sd/sdasda.asda/',
    '/var/app/current/somedir/fileOrFolder.txt',
    '/var/app/current/somedir/fileOrFolder'
]

for (var ii = 0, nn = tests.length; ii < nn; ii++)
{
    if (/^\/var\/app\/current\/somedir\/.*[\/].*$/i.test(tests[ii]))
    {
        console.log('"'+tests[ii]+'"', 'Matched, so ignored.');
    }
    else
    {
        console.log('"'+tests[ii]+'"', 'Not matched, so watch.');
    }
}

在JavaScript控制台中打印以下内容:

代码语言:javascript
复制
/*
 * "/var/app/current/somedir/fileOrFolder.txt" Not matched, so watch.
 * "/var/app/current/somedir/fileOrFolder/" Matched, so ignored.
 * "/var/app/current/somedir/fileOrFolder/ssads/sad.s" Matched, so ignored.
 * "/var/app/current/somedir/fileOrFolder.sd/sdasda.asda/" Matched, so ignored.
 * "/var/app/current/somedir/fileOrFolder.txt" Not matched, so watch.
 * "/var/app/current/somedir/fileOrFolder" Not matched, so watch.
*/
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40967445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档