Разобрать текс на слова, переносы строк
.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) );
