Glob字符串比较

时间:2016-10-25 18:11:00

标签: javascript node.js glob

我有一个glob字符串和一个文件路径,是否可以测试文件路径以查看字符串是否与glob匹配?

let path = ['/home/location/file.scss','/home/location/file.cat'];
let pattern = '**/*.{sass,scss}';

path.forEach(file => {
    if(/* Test success */) {
        // read file and process it's content
    }
});

2 个答案:

答案 0 :(得分:0)

你能使用正则表达式吗?因为您可以将模式转换为正则表达式/\.s[ac]ss$/i,然后执行

path.forEach(file => {
  if (file.match(pattern)) {
  }
});

还有glob-to-regexp,如果你必须在glob中编写模式。

答案 1 :(得分:0)

安装minimatch npm install minimatch

然后您可以使用

匹配测试数组
var minimatch = require("minimatch");

let path = ['/home/location/file.scss','/home/location/file.cat'];
let pattern = '**/*.{sass,scss}';

path.forEach(file => {
    if(minimatch(file, pattern) {
        // read file and process it's content
    }
});

虽然如果你打算对文件做些什么我会以不同的方式使用它,或者使用http://github.com/isaacs/node-glob