Javascript 文件扩展名RegExp的节点参数

Javascript 文件扩展名RegExp的节点参数,javascript,regex,node.js,Javascript,Regex,Node.js,我想使用node.js在目录中搜索特定的文件类型 var fs = require('fs'); var dir = process.argv[2]; // directory var ext = process.argv[3]; // file extension to search for fs.readdir( dir, function(err, list) { if(err) throw err; // build regex search

我想使用node.js在目录中搜索特定的文件类型

var fs = require('fs');

var dir = process.argv[2]; // directory
var ext = process.argv[3]; // file extension to search for

fs.readdir( dir, function(err, list) {
    if(err)
        throw err;

    // build regex search
    var re = new RegExp("^.*\." + ext + "$");

    // print if specific extension found
    list.forEach( function(item) {
    if( re.test(item) ) 
        console.log(item);
    });
});
以下是执行情况:

  node readDir.js ./ js
但我得到的结果是一个没有扩展名的文件。控制台输出:

01-express.js
hihihijs
myprogram.js
readDir.js
readFileAsync.js
readFileSync.js

我的正则表达式错了吗?在这种情况下,^.*.js$

当您用new声明一个regex对象时,应该转义反斜杠

尝试
var re=newregexp(“^.*\\”+ext+“$”)


当您用new声明正则表达式对象时,应该使用双转义反斜杠。尝试
RegExp(“^.*\\”+ext+“$”)就是这样!非常感谢。我可以投票认为你的意见是正确的解决方案吗?