2

我想使用 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$

4

1 回答 1

2

当你用 new 声明一个正则表达式对象时,你应该转义反斜杠。

尝试var re = new RegExp("^.*\\." + ext + "$");

MDN

于 2013-10-30T00:35:36.010 回答