Попытка перевести возврат каретки в HTML-тег в Javascript?

У меня есть XML-канал, который im тянет через javascript и переводит его во что-то более HTML-дружественное, но im догнал, как перевести возврат каретки в HTML br tag

Я пробовал что-то вроде этого

text = text.replace('r','<br />'); 

безрезультатно..

какие идеи?

5 ответов


функция замены Javascript заменяет только первое появление, если вы используете строку в качестве критериев соответствия. Для замены всего можно использовать regex.

попробуйте что-то вроде этого

text = text.replace(/(\r\n|\n|\r)/g,"<br />");

надеюсь, что это помогает.


вы можете просто применить CSS white-space:pre на элементе, точно так же, как HTML <textarea> элемент внутренне делает:

<span style="white-space:pre">your  text  \n will \n be \n on multiple \n lines</span>

(Примечание: класс более рекомендуется, чем стиль, выше просто пример стартового)


вместо возврата каретки могут быть символы новой строки. Я бы использовал это:

text = text.replace(/\r\n?|\n/g, '<br />');

который заменит все экземпляры \r\n, \r и \n С <br />, но не заменить \r\n с двумя перерывами, что является желаемым поведением.


попробуйте это:

text = text.replace(/\r\n|\r|\n/g, '<br />');

вы должны взглянуть на ленту вручную. Вероятно, он использует другой тип конца строки (EOL), чем \r.

также, чтобы заменить все вхождения типа EOL, вам нужно использовать регулярное выражение в заменить()