有人可以告诉我为什么这个正则表达式在Node中失败了吗?
我已经在多个RegEx测试人员上对其进行了测试,如果我使用.tif
字符串,它也可以使用。
// file name = ECS_6183.tif
const extName = path.extname(path.resolve(searchPath, file));
return ( extName === /\.tif/gi);
答案 0 :(得分:4)
您的第return ( extName === /\.tif/gi);
行
应为return /\.tif/gi.test(extName);
答案 1 :(得分:2)
使用/\.tif/gi.test(extName)
测试匹配。 ===
用于检查对象是否相等,在你的情况下它们不是。
答案 2 :(得分:1)
这不是你应该如何将字符串与正则表达式进行比较。尝试做这样的事情:
const extName = path.extname(path.resolve(searchPath, file));
var reg = new RegExp(/\.tif/gi);
return reg.test(extName)
答案 3 :(得分:0)
请使用return ( /\.tif/gi.test(extName) );
修改强> 对不起。我实际上没有回答你的问题。问题是===比较两个对象是否相等。在这种情况下,正则表达式匹配字符串,但显然它与字符串不是同一个对象。