最终我试图改变这个:
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}', ' ');
});
我认为这会奏效,但男人这样做似乎是一种反复无常和倒退的方式来完成我想要的。我相信你们有比在拆分之前创建占位符字符串更好的方法。