Разобрать текс на слова, переносы строк

.split("")

Так получаем на выходе массив из символов, который включает слова, пробелы и переносы строк

.split(" ")

Получаем массив в котором только слова, местами просто пустые значения, без пробелов. Переносы строк получаются так

\nLorem

Вопрос в том, как разобрать текст так, чтобы массив содержал отдельно пробелы, отдельно переносы строк и отдельно слова?

 console.log(text.textContent.match(/[a-zа-яё0-9]+|\s+|[^\w\s]+/gi));
  #test, #text {
    white-space: pre-wrap;
    max-width: 30%
  }
<div id=text>

  Lorem   
  ipsum dolor sit, amet consectetur adipisicing elit.
  Praesentium nemo dolores debitis, maxime quia ipsum quasi
officiis id libero tenetur autem similique iure itaque optio quis beatae minima! Libero, eaque!
</div>

введите сюда описание изображения


Ответы (1 шт):

Автор решения: UModeL

Типичная XY Problem... Вы пытаетесь разделить строку, а необходимо найти в строке!

Поэтому правильнее будет использование метода match(), вместо split().

Также не забывайте, что знаки препинания тоже должны быть отдельными элементами, так как не относятся ни к словам, ни к пробельным символам.

const sTXT = `Вопрос в том, как разобрать текст так, чтобы массив содержал: отдельно пробелы, отдельно переносы строк и отдельно слова???  
Как мне получить желаемый результат?`;

const rEXP = /[a-zа-яё0-9]+|\s|[^\w\s]+/gi;

console.log( sTXT.match(rEXP) );

→ Ссылка