Задать вопрос
@Denis1111

Как разбить строку на массив с условием?

Например, есть строка
Моя "строка здесь" будет в массиве
Я хочу эту строку разбить эту строку через пробел arr.split(" "), но как мне сделать так, чтобы split не учитывал пробелы в кавычках, а выдал таким образом:
["Я", "строка здесь", "будет", "в", "массиве"]
Слышал, что нужны регулярные выражения, но не понимаю до конца. Прошу помощи!!
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@Azperin
Дилетант
var str = 'Я "строка здесь" будет в массиве "но без понятия" кому это вообще нужно';
var arr = str.match(/(?:[^\s"]+|"[^"]*")+/g).map(x => x.replace(/"/g,''));
// Array(10) [ "Я", "строка здесь", "будет", "в", "массиве", "но без понятия", "кому", "это", "вообще", "нужно" ]
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iLegion
@iLegion
Web Developer
Вы можете создать массив как делали это ранее, а потом просто отфильтровать массив удалив пустые элементы используя метод "filter".
Пример.
let array = [1, null, "2", null, null, 3.0]
let array2 = array.filter(element => element !== null);
console.log(array2);
Ответ написан
Комментировать
@SeaBreeze876
Front-end разработчик
string.match(/".+?"|[а-яА-Я]+/g);
string.match(/".+?"|\S+/g)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы