如何在ejs文件的新行中添加文本



现在我正试图用嵌入的javascript来更改ejs文件的主体。这是代码:

<body>
<%- include('navbar.ejs'); %>
<div class="novel" id="title">
<p>Novel Title</h3>
</div>
<div id="skip"><button>
First
</button>
<button>
Last
</button></div>
<p>
<% for( let index = 0; index < text.length; index++ ) { %>
<%-  text[index] %>
<% } %>

在for语句中,text变量是一个非常长的字符串列表,该字符串包含小说的文本。列表中的每一项都用新行分隔,所以现在我想在ejs文件中打印出来,每一行都在一个新行中。在这种情况下,这就像进行

document.write("/n") 

如果它在ejs文件上工作。

提前谢谢。

尝试使用换行regex测试每个字符,如果为true,则添加一个<br>,否则添加字符:

<% for( let index = 0; index < text.length; index++ ) { %>
<%-  (/rn|n|r/).test(text[index]) ? '<br>' : text[index] %>
<% } %>

或者简单地用换行符分割字符串,这将创建一个数组,您可以使用<br>:加入该数组

<%-  text.split(/rn|n|r/).join('<br>') %>

您应该使用<%=标记来转义字符串,这将需要修改代码。一种选择是分割字符串,然后输出转义字符串和HTML换行符:

<% const split = text.split(/rn|n|r/); %>
<% split.forEach(line => { %>
<%= line %><br>
<% }); %>

最新更新