filter -n ""function(file) { return file.owner == "john"; }""
应解析为以下数组:
[ 'filter',
'-n',
'function(file) { return file.owner == "john"; }' ]
filter -n ""function(file) { return file.owner == "john"; }""
应解析为以下数组:
[ 'filter',
'-n',
'function(file) { return file.owner == "john"; }' ]
我不完全确定你想如何处理双引号。您是否还希望能够处理每端只有一个双引号的字符串,或者引号总是加倍?
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);
结果:
filter,-n,function(file) { return file.owner == "john"; }