@be_a_man

Как разбить текст на строки JS?

Имеется сплошной текст. Как обернуть каждую строку на фронте в span?
5a51bf87e573b651221160.png

UPD: обернуть нужно строки как их видит юзер на экране.
5a51cf4e5d46a579876384.png
  • Вопрос задан
  • 7612 просмотров
Решения вопроса 2
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Могу предложить такой костыль: https://jsfiddle.net/h392bc1y/
Ответ написан
Stalker_RED
@Stalker_RED
Код страшненький, но работает: https://jsfiddle.net/Stalk/mcv6gsmt/2
Клонируем родительский элемент, копируем его контент, замеряем высоту одной строки.
Добавляем в него текст, пока высота не изменится (значит сработал перенос).
Запоминаем строку, и повторяем, пока контент не кончится.
(можно значительно ускорить, если добавлять не посимвольно, а по словам).

Еще есть вариант с canvas measureText(), возможно он будет быстрее работать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
petermzg
@petermzg
Самый лучший программист
Как-то так:
var p = $('p');
var lines = p.html().split("\n");
var formated = [];
$.each(lines, function(i, v){  formated.push("<span>{1}</span>".replace('{1}', v));  });
p.html(formated.join(''));
Ответ написан
@Azperin
Дилетант
могу предложить только регулярку, если канеш там точно нет символов новой строки
/(.{0,37}[\s])/gi
Ответ написан
LenovoId
@LenovoId
svg, css,js
самое просто это на css сделать ... я имею ввиду с эмулировать
Ответ написан
Ваш ответ на вопрос

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

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