在express中,如何在流控制部分插入新行(非评估代码)?

时间:2018-01-24 07:00:27

标签: node.js express ejs

当我评估字符串时,如何在Express中返回新行?

我知道<%- %>不会转义字符,但如果我只是在运行循环并想在评估之前添加新行呢?

<% str = "" %>
<% for (var person in contacts) { %>
    <% str += person; %>
    <% for (subcategory in contacts[person]){ %>
        <% str += ", " + contacts[person][subcategory]; %>
    <% } %>
    <% str += "\n"; %>
<% } %> 
<h3><%= str %></h3>

我的行<% str += "\n"; %>应该只是在字符串中添加一个新行。但它忽略了它(与\r相同)。

2 个答案:

答案 0 :(得分:0)

在编写HTML网页时,您应该打印一个添加一行(<BR>)的标记

试试这个:

<% str = "<BR>" %>

答案 1 :(得分:0)

到目前为止,我发现我能做的最好的事情是使用\n替换/foo/g,其中foo是我要替换的文字。

<% str = "" %>
<% for (var person in contacts) { %>
    <% str += person; %>
    <% for (subcategory in contacts[person]){ %>
        <% str += ", " + contacts[person][subcategory]; %>
    <% } %>
    <% str += "\n"; %>
<% } %> 
<% str = str.replace(/\n/g,'<br>'); %>
<h3><%- str; %></h3>

大注释:这假设我想要替换所有新的换行符。这不一定是真的。我仍然希望在每个for (subcategory in...)循环后创建一个新行。

选项是将str += "\n";替换为str += "xxyyzz"; ...再次,假设我的字符串中没有其他要包含的实例将为xxyyzz