用\替换\ n无效

时间:2018-02-13 17:17:23

标签: javascript jquery regex

在我的mongoDB中:

description: "Test\n\nTest"

当我尝试在我的ejs文件中显示时,文本会忽略de" \ n"

测试测试

我的HTML

<div id="description">
    <%= test.description %>
</div>

我尝试使用此代码

解决此问题
var desc = $('#description').text();
desc.replace("\n", "<br>");

$('.description').text(desc);

也尝试过:

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

和:

desc.split("\n").join("<br />");

这些都不起作用

如果我在Chrome控制台中打印var desc = $('#description').text();,则会显示以下内容:

              Test

Test

我做错了什么以及如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

使用html()代替text(),因为您想要更改HTML标记.... text()会忽略<br>代码

此外,您只是替换不更新它的值.....需要将替换值放在desc变量中

desc = desc.replace(/\n/g, "<br>");

同样desc.replace("\n", "<br>");将替换第一个\n匹配

Stack Snippet

var desc = "Test\n\nTest"
desc = desc.replace(/\n/g, "<br>");
$('#description').html(desc);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="description"></div>

答案 1 :(得分:0)

使用您的代码,desc.split("\n").join("<br />");对我来说很好。

var desc = $('#description').text();
console.log("original text = " + desc);

desc = desc.split("\n").join("<br />");
console.log("using split/join = " + desc);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="description">
  Here is
  the contents of
  the div
  with line breaks in it.
</div>