javascript scinde une chaîne en fonction de l'espace, mais ignorer l'espace entre guillemets (avis de ne pas diviser par le colon trop)

J'ai besoin d'aide le découpage d'une chaîne de caractères en javascript par un espace (" "), ignorant de l'espace à l'intérieur des guillemets expression.

J'ai cette chaîne:

var str = 'Time:"Last 7 Days" Time:"Last 30 Days"';

Je m'attends à ma chaîne pour être diviser en 2:

['Time:"Last 7 Days"', 'Time:"Last 30 Days"']

mais mon code se divise à 4:

['Time:', '"Last 7 Days"', 'Time:', '"Last 30 Days"']

c'est mon code:

str.match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);

Merci!

  • Alors que la question liée est liée, il n'est pas un doublon: Cette question explicitement veut non cotées chaînes qui sont jointes à double chaînes entre guillemets (par exemple, foo:"bar none") pour être reconnu comme un seul jeton (et aussi ne pas parler de la nécessité de gérer échappé à double-guillemets.)
InformationsquelleAutor Elad Kolberg | 2013-04-28