这类似于Jade - convert new lines to <br/> and keep the content encoded
所以在ejs中也有这么简单的方法:
<%- escape(foo).replace(/\n/g, '<br/>') %>
这可以通过从ejs中提取escape方法并分配给res.locals来实现,但是如果可能的话,我正在寻找更优雅的东西
答案 0 :(得分:0)
当我不得不在页面中显示git commit消息时,我遇到了类似的问题。我查看了GitLab格式如何提交消息,并发现它们使用white-space: pre-wrap
。 https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
因此在我的.ejs文件中,我使用:
<div style="white-space: pre-wrap"><%= commit.body %></div>
答案 1 :(得分:-1)
你可以使用<%= %>
转义html,以及你已经拥有的替换函数(假设foo
是一个字符串)。
<%= foo.replace(/\r\n/g, '<br/>')) %>