Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于筛选包含.part或.temp的文件名的常规表达式失败_Javascript_Regex - Fatal编程技术网

Javascript 用于筛选包含.part或.temp的文件名的常规表达式失败

Javascript 用于筛选包含.part或.temp的文件名的常规表达式失败,javascript,regex,Javascript,Regex,我正忙于一个node/express应用程序,试图忽略所有包含.part或.temp作为文件名一部分的文件名。由于某种原因,我编写的正则表达式完全失败了。。。知道我做错了什么吗 我的正则表达式: /[xyz]*\.part+|\.temp+\/ 如果将表达式插入regex101.com或类似文件,您应该会看到问题所在 如果要筛选出包含.part或.temp的文件名: if (!/\.(?:part|temp)/.test(filename)) { // Doesn't have it,

我正忙于一个node/express应用程序,试图忽略所有包含.part或.temp作为文件名一部分的文件名。由于某种原因,我编写的正则表达式完全失败了。。。知道我做错了什么吗

我的正则表达式:

/[xyz]*\.part+|\.temp+\/

如果将表达式插入regex101.com或类似文件,您应该会看到问题所在

如果要筛选出包含
.part
.temp
的文件名:

if (!/\.(?:part|temp)/.test(filename)) {
    // Doesn't have it, the name's okay
}
如果您愿意,也可以是
/\.part\.temp/
。(这更容易理解…)

测试示例:

var测试=[
{str:“foo”,expect:true},
{str:“foo.part”,expect:false},
{str:“.partfoo”,expect:false},
{str:“foo.partfoo”,expect:false},
{str:“bar”,expect:true},
{str:“bar.temp”,expect:false},
{str:“.tempbar”,expect:false},
{str:“bar.tempbar”,expect:false}
];
测试。forEach(函数(条目){
var结果=!/\(?:零件温度)/.测试(entry.str);
if(result==entry.expect){
console.log(“'”+entry.str+“'=>”+result+“GOOD”);
}否则{
console.log(“'”+entry.str+“'=>“+result+”错误应为“+entry.expect”);
}
});
。作为控制台包装器{
最大高度:100%!重要;

}
什么是
[xyz]*
部分?是的,删除
[xyz]*
/\(?:part | temp)/
就足够了。@T.J.Crowder不是所有非特殊字符组成的字符集吗?@user2094257:嗯……不……一点也不。建议,克劳德,这根本不起作用。我的代码:var-watcher=chokidar.watch('./下载',{忽略:'/\.(?:part | temp)/',持久:true})@user2094257:那么这与
chokidar.watch
有关。正则表达式按你说的做。请参阅我添加到答案中的测试。