2014-01-17 3 views
2

Мне нужна помощь в этом синтаксическом разборе строк. Что я хочу сделать, так это разобрать строку, подобную этой, используя Javascript.Разбор строки в виде ввода командной строки в Javascript

"myname" secondarg "third argument" andso on 

дать мне результат, как

[0] => myname 
[1] => secondarg 
[2] => third argument 
[3] => andso 
[4] => on 

EDIT:

"test" " foo" bar "hello world" " hello " 

в

[0] => 'test' 
[1] => ' foo' 
[2] => 'bar' 
[3] => 'hello world' 
[4] => ' hello ' 

ответ

3
function argsFrom(string) { 
    return string.match(/'[^']*'|"[^"]*"|\S+/g) || []; 
} 

То есть довольно приличный, но он не касается экранированных кавычек и т. д. Очень сложно иметь полное решение, столь же сложное, как разбор CSV.

Javascript code to parse CSV data

+1

как я могу избавиться от дополнительной передней и задней двойные кавычки на выходе? – razorxan

+0

возможно, используйте замену строки позже. .replace (/ "/ g," ")' для каждого элемента массива – vladkras

Смежные вопросы