JavaScript中错误的字符串替换

时间:2018-09-27 03:35:35

标签: javascript html string replace str-replace

使用Javascript在网页上显示数据时遇到以下问题。

代码如下:

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

我想目的很明确,我想用
标记替换'\ n'换行标记,但在HTML中做同样的事情。

问题是:

以字符串 abc \ nXYZ 开头,而不是像我期望的那样得到 abc
XYZ
,我最终得到 abc&lt; br /&gt; XYZ 。当然这不是我想要的,因为效果不一样。

正确的解决方法是什么?

2 个答案:

答案 0 :(得分:0)

获取内部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>

答案 1 :(得分:0)

这里的问题是\n<br/>标签的 string 版本所取代,意思是HTML对其进行翻译的方式,使得<>出现而不是充当标签。

您应该做的是获取HTML并替换其中的部分。像这样:

var myDiv = Document.getElementById('my-div');
var myDivContent = myDiv.innerHTML;
myDiv.innerHTML = myDivContent.replace("\\n", "<br/>");