разделение JavaScript без подстроки - PullRequest
0 голосов
/ 30 августа 2018

У меня есть строка, которая выглядит следующим образом

"a,b,c,"Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",d,e"

Я пытаюсь разбить эту строку на "," и получить извлекать отдельные значения. Теперь, что он делает, это разделяет часть «Mozilla / 5.0, (совместимый;, MSIE, 9.0;, Windows, NT, 6.1;, Trident / 5.0)» также, и я получаю это как окончательный результат

["a", "b", "c", ""Mozilla/5.0", "(compatible;", "MSIE", "9.0;", "Windows", "NT", "6.1;", "Trident/5.0)"", "d", "e"]

Есть ли способ заставить его не разбивать подстроку? В основном я пытаюсь получить это после раскола

["a", "b", "c", "Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)", "d", "e"]

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете использовать регулярное выражение и использовать отрицательный прогноз для не-" символов, за которыми следует окончание ",, что будет означать, что текущая запятая находится внутри строки в кавычках:

const str = `a,b,c,"Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",d,e,"foo,bar,quoted",f,g`;
console.log(str.split(/,(?![^"]+",)/))
...