为什么这个正则表达式失败了

时间:2018-06-12 14:28:49

标签: javascript node.js

有人可以告诉我为什么这个正则表达式在Node中失败了吗?

我已经在多个RegEx测试人员上对其进行了测试,如果我使用.tif字符串,它也可以使用。

  // file name = ECS_6183.tif

  const extName = path.extname(path.resolve(searchPath, file));
  return ( extName === /\.tif/gi);

4 个答案:

答案 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) );

修改 对不起。我实际上没有回答你的问题。问题是===比较两个对象是否相等。在这种情况下,正则表达式匹配字符串,但显然它与字符串不是同一个对象。