Неправильная замена строки в Javascript - PullRequest
0 голосов
/ 27 сентября 2018

При использовании Javascript у меня возникает следующая проблема при отображении данных на веб-странице.

Код выглядит так:

myString.replace('\n', '<br/>');

Полагаю, цель ясна, я хочузамените маркер перевода строки '\ n' на тег
, сделав то же самое, но в HTML.

Проблема заключается в следующем:

Начиная со строки: abc \ nXYZ вместо того, чтобы получать abc
XYZ
, как я и ожидал, я получаю abc & lt; br / & gt; XYZ ,Это, конечно, не то, что я хочу, потому что эффект не тот.

Какая правильная работа?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Проблема в том, что \n заменяется строкой версией тега <br/>, то есть способом, которым HTML переводит его так, что вместо него отображаются < и >функционировать в качестве тега.

Что вам нужно сделать, это получить HTML и заменить раздел в этом.Как то так:

var myDiv = Document.getElementById('my-div');
var myDivContent = myDiv.innerHTML;
myDiv.innerHTML = myDivContent.replace("\\n", "<br/>");
0 голосов
/ 27 сентября 2018

Получите внутренний HTML, а затем str.replace("\n", "<br/>") и вставьте его обратно во внутренний HTML.Я приложил фрагмент кода рабочей демонстрации.

function myFunction() {
  var str = document.getElementById("demo").innerHTML;
  var res = str.replace("\n", "<br/>");
  document.getElementById("demo").innerHTML = res;
}
<!DOCTYPE html>
<html>

<body>

  <p>Click the button to replace carriage returns with line-break in the paragraph below:</p>

  <p id="demo">Visit 
  Stack Overflow!</p>

  <button onclick="myFunction()">Try it</button>

</body>

</html>
...