Разбейте строку, используя запятую, но игнорируйте запятую в двойных кавычках - javascript - PullRequest
1 голос
/ 20 апреля 2020

Мне известно о том, что об этом раньше уже спрашивалось на этом форуме - Разделить строку запятыми, но игнорировать запятые в двойных кавычках, используя Javascript. Но мое требование немного отличается, о чем здесь говорили. Извините, что перепутал вас с моим вопросом.

У меня есть строка, подобная приведенной ниже -

myString = " "123","ABC", "ABC,DEF", "GHI" "

Здесь я хочу разбить эту строку на запятую и сохранить ее в массиве, игнорируя запятую внутри двойная цитата. Вот что я пробовал до сих пор.

myArray.push(myString.replace(/"/g,"").split(","));

Но я не уверен, как игнорировать ',' внутри двойной кавычки. Может ли кто-нибудь помочь, пожалуйста?

Вот так должен выглядеть мой вывод -

myArray = ["123","ABC", "ABC,DEF", "GHI"]

Ответы [ 4 ]

1 голос
/ 20 апреля 2020

Похоже, у вас уже есть массив, так что нет разделенной запятой. Преобразование .toString() выглядит ненужным шагом.

Я думаю, что вы путаете синтаксис языка с реальными данными. Двойные кавычки, которые вы видите, не являются частью содержимого строк. Похоже, у вас уже есть нужные данные.

0 голосов
/ 20 апреля 2020
myString = ' "123","ABC", "ABC, DEF", "GHI" ';
console.log(JSON.parse(`[${myString}]`));

Это должно сработать ... В основном то, что написал epascarello в комментариях к вопросам.

Приветствия.

0 голосов
/ 20 апреля 2020

Вы можете попробовать с регулярным выражением ([^"])* Я проверял его на https://regex101.com

Это результат, который вы можете увидеть на рисунке ниже => https://regex101.com/r/a5dwNY/1

Regex 101 result

0 голосов
/ 20 апреля 2020

Один способ сделать это с помощью split(), map() и replace()

myString = ' "123","ABC", "ABC,DEF", "GHI" ';
console.log(myString.split('",').map(n=>n.replace(/\"| /g,'')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...