2016-12-13 5 views
2

Ich habe ein Array von Pfaden, sagen wir mal:Hat String Match glob Muster

/Users/alansouza/workspace/project/src/js/components/chart/Graph.js 

Auch habe ich einen Eintrag in einer Konfigurationsdatei mit zusätzlichen Attributen für diesen Weg in einem Platzhalter (glob) Format, wie es in :

{ 
    '**/*.js': { 
    runBabel: true 
    } 
} 

Frage: gibt es eine einfache Möglichkeit, wenn der Pfad den Platzhalter Ausdruck passt zu validieren?

Zum Beispiel:

const matches = Glob.matches(
    '**/*.js', 
    '/Users/alansouza/workspace/project/src/js/components/chart/Graph.js' 
); 

if (matches) { 
    //do something 
} 

FYI: Ich verwende https://github.com/isaacs/node-glob

+0

hey, ich bin nicht vertraut mit 2 Sternchen hintereinander in einem glob Ausdruck, in Ihrem Beispiel was ist der Unterschied zwischen '*' und '**'? – chiliNUT

+0

Ich glaube, ich verstehe deine Frage, ich verstehe es einfach nicht was die Bedeutung von 2 Sternen in einer Zeile in einem Glob-Ausdruck ist – chiliNUT

+1

Ihre Bearbeitung bringt keine Antwort auf die (gute) Frage von @chiliNUT! Also nochmal: Was soll '**' bedeuten? – cFreed

Antwort

4

Sie können die glob zu einem regex mit Knoten glob-to-regex konvertieren und dann Pfad Saiten gegen die regex zu validieren.
https://www.npmjs.com/package/glob-to-regexp

es sieht aus wie node glob ist eine andere Option.
https://github.com/isaacs/node-glob

Und Knoten hat seine eigene glob Implementierung
https://github.com/isaacs/minimatch

Mein erster Gedanke war zu sehen, wenn phpjs eine glob-Funktion implementiert hatte, aber es sieht aus wie sie nicht :(haben
http://locutus.io/php/

+1

Nun, ich benutze node-glob selbst. aber es hat nicht die "Match" Unterstützung, nach der ich suche. –

+0

von der Spitze meines Kopfes (habe nicht getestet) scheint es, als könnte man etwas tun, wie einen einzelnen Stern durch '([^. /] *)' Ersetzen und Doppelstern mit '([^ /] +/*) + 'und rufe einfach an, dass die Regex – chiliNUT

+0

@AlanSouza auch' minimatch' gefunden hat, obwohl sie immer noch die gleichen Einschränkungen wie 'node-glob' haben könnte, da sie vom gleichen Typ stammt – chiliNUT