Разделение строки по запятым в JavaScript: примеры и методы

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Вот хорошая новость: чтобы разбить строку на подстроки по запятым, воспользуйтесь методом .split(','):

JS
Скопировать код
const fruits = "apple,orange,banana".split(',');
console.log(fruits); // ["apple", "orange", "banana"]
// И никаких лишних запятых!

Если необходимо удалять пробелы вокруг подстрок, можно сделать это за один раз:

JS
Скопировать код
const fruits = " apple , orange , banana ".split(',').map(fruit => fruit.trim());
console.log(fruits); // ["apple", "orange", "banana"]
// Вуаля, все бананы на месте!
Кинга Идем в IT: пошаговый план для смены профессии

Нюансы, которые важно учитывать

Появление пустых строк

Пустые строки образуются каждый раз, когда между запятыми нет данных:

JS
Скопировать код
const colors = "red,,blue".split(',');
console.log(colors); // ["red", "", "blue"]
// Может ли цвет быть пустым?

Если вам не нужны пустые строки, исключите их с помощью .filter(Boolean):

JS
Скопировать код
const colors = "red,,blue".split(',').filter(Boolean);
console.log(colors); // ["red", "blue"]
// Так гораздо лучше: только красный и синий, без лишних размышлений.
Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Ограничение количества подстрок через лимит

Установите параметр limit, чтобы контролировать количество подстрок в результате:

JS
Скопировать код
const data = "one,two,three,four".split(',', 2);
console.log(data); // ["one", "two"]
// Извините, третий и четвёртый, но не в этот раз.

Различные разделители для различных данных

Используйте регулярные выражения, если разделители неоднородны:

JS
Скопировать код
const mixDelimited = "One, Two and Three; Four".split(/[,;] */);
console.log(mixDelimited); // ["One", "Two and Three", "Four"]
// Ценим многообразие, как и положено!

Визуализация

Метод .split(',') можно представить как нанизывание бус из драгоценных камней на нити:

Markdown
Скопировать код
Строка: "💎,💙,💚,💛"

.split(',') работает как магия, превращая строку в массив из камней:

JS
Скопировать код
gemsArray = string.split(',');

В итоге вы получаете массив, в котором каждый камень сияет отдельно:

Markdown
Скопировать код
Массив: [💎, 💙, 💚, 💛]

🔓 Разбивка строки подобна магии: вы освобождаете камни для новых творческих процессов.

Сложности продвинутого уровня

Работа с данными в кавычках

Если вы хотите сохранить данные в кавычках в исходном виде:

JS
Скопировать код
const quoted = '"apple","orange","banana", "kiwi"';
const preserved = quoted.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g);
console.log(preserved); // ["apple", "orange", "banana", "kiwi"]
// У каждого фрукта свои секреты!

Борьба с CSV-монстром

Данные в формате CSV могут быть изощрёнными из-за наличия запятых внутри значений. Простой .split(',') может работать некорректно:

JS
Скопировать код
const csvData = 'John Doe, "New York, NY", 30';
// Ой, .split(',') разделил "New York, NY" на две части. Этого мы не хотели!

В таком случае лучше пользоваться проверенными библиотеками, такими как PapaParse, или использовать отрицательный просмотр вперёд в регулярных выражениях для точного разбивания данных.

Полезные материалы

  1. String.prototype.split() – JavaScript | MDNподробное руководство по методу .split().
  2. JavaScript String split() Methodпошаговое описание основ метода .split() в JavaScript.
  3. Методы массивовпрофессиональное руководство по методам split и join, а также другим методам для работы с массивами.
  4. Как разбить строку по нескольким разделителям в JavaScript? – Stack Overflowреальный опыт разбиения строк на подстроки с использованием нескольких разделителей.
  5. Справочник по функциям в JavaScript | Codecademyкраткое руководство и примеры для работы со строками в JavaScript, включая split.
  6. Работаем со строками в JavaScript | DigitalOceanпрактическое руководство по обработке строк и использованию метода split().
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой метод используется для разделения строки по запятым в JavaScript?
1 / 5