JackShcherbakov
@JackShcherbakov

Как разбить строку на элементы массива по разделителю так, чтобы сам разделитель присутствовал в результирующем массиве?

Здравствуйте, коллеги!

Кратко:
Было: строка - "1 ! 2 ! 3"
Нужно: массив - ["1", "!", "2", "!", "3"]
Как так сделать?

Мне это нужно для правильного парсинга CSS - https://codepen.io/CitizenOne/pen/pLOPEW?editors=0010

Заранее выражаю огромную благодарность всем, кто поможет
UPD:
Пока сделал так - https://codepen.io/CitizenOne/pen/pLOPEW?editors=0010 . Жду других предложений
  • Вопрос задан
  • 442 просмотра
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
var s="1 ! 2 ! 3";
console.log(s.split(/[\s+]/));
Ответ написан
Комментировать
hahenty
@hahenty
('•')
javascript.ru/String/split
"Пример: Вложенные скобки"
там каким-то чудом скобки из разделителя попадают в результат.

А по сути кода предлагаю: регулярные выражения через .replace()
function extract(s, selector, props) {
	//здесь props можно split(';').map( stringtrim )
	//и другой анализ и сборка объекта
}
csstext.replace( /([.#]?[\w-]+)\{([\s\S]*)\}/m, extract );

Ну и усложнить регулярку для определения селекторов через запятую, отсечь медиа-запросы.
Не советую делать .replace(/\s/g, ""), так как можно удалить нужные пробелы, например, в определении свойств border.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы