最終的に私はこれを変えようとしています:
var msg = '-m "this is a message" --echo "another message" test arg';
これに:
[
'-m',
'this is a message',
'--echo',
'another message',
'test',
'arg'
]
文字列を解析して目的の結果を得る方法がよくわかりません。これは私がこれまでに持っているものです:
var msg = '-m "this is a message" --echo "another message" test arg';
// remove spaces from all quoted strings.
msg = msg.replace(/"[^"]*"/g, function (match) {
return match.replace(/ /g, '{space}');
});
// Now turn it into an array.
var msgArray = msg.split(' ').forEach(function (item) {
item = item.replace('{space}', ' ');
});
それはうまくいくと思いますが、私が望むことを達成するための気まぐれで後ろ向きな方法のように思えます。分割前にプレースホルダー文字列を作成するよりもはるかに良い方法があると確信しています。