Frage

filter -n ""function(file) { return file.owner == "john"; }""

sollte in das folgende Array analysiert werden:

[ 'filter',
  '-n',
  'function(file) { return file.owner == "john"; }' ]
War es hilfreich?

Lösung

Ich bin mir nicht ganz sicher, wie Sie die doppelten Anführungszeichen behandeln möchten. Wollen Sie auch in der Lage zu handhaben Saiten mit nur einem einzigen doppelten Anführungszeichen an jedem Ende, oder sind die Anführungszeichen immer verdoppelt?

var string = 'filter -n ""function(file) { return file.owner == "john"; }""';
var regex  = /([^"\s]+)|""(.*?)""/g;
var match;
var result = [];

while (match = regex.exec(string)) {
    result.push(match[1] || match[2]);
}

alert(result);

Ergebnis:

filter,-n,function(file) { return file.owner == "john"; }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top