Javascript 显示新线路<;br>;在数据库中具有时在浏览器中\n
在mongo中,我有一个文档,其字段类似于Javascript 显示新线路<;br>;在数据库中具有时在浏览器中\n,javascript,html,mongodb,express,ejs,Javascript,Html,Mongodb,Express,Ejs,在mongo中,我有一个文档,其字段类似于reviewText:“这是第1行\n这是第2行”。我从一个文本区域中得到了它,因此\n在那里,因为用户按了enter键。我想在屏幕上用一个带换行符的div打印文本(如果他多次输入,最好只打印一个换行符)。我不知道怎么做,我没有在屏幕上看到任何\ns 我在EJS中执行,它只在一行上打印所有内容。这是浏览器中的第1行这是第2行 我的路线中有一些地方可以更新文档,如: .then(function(returnedReviews){
reviewText:“这是第1行\n这是第2行”
。我从一个文本区域
中得到了它,因此\n
在那里,因为用户按了enter键。我想在屏幕上用一个带换行符的div打印文本(如果他多次输入,最好只打印一个换行符)。我不知道怎么做,我没有在屏幕上看到任何\n
s
我在EJS中执行
,它只在一行上打印所有内容。这是浏览器中的第1行这是第2行
我的路线中有一些地方可以更新文档,如:
.then(function(returnedReviews){
console.log(" returnedReview ",returnedReviews);
returnedReviews.forEach(function(e){
e.momented = moment(e.createdAt.getTime()).fromNow()
// e.reviewText = e.reviewText.replace(/\r?\n/g, '<br />')
})
.then(函数(returnedReviews){
log(“returnedReview”,returnedReviews);
returnedReviews.forEach(函数(e){
e、 momented=时刻(e.createdAt.getTime()).fromNow()
//e.reviewText=e.reviewText.replace(/\r?\n/g,
)
})
我试着做我在评论中所做的。但很明显,这只是把
(文本)放在字符串中,而不是HTML。我希望有一种简单的方法来做到这一点
我希望在用户发送表单之前在
文本区域中点击enter键的屏幕上打印表单时看到换行符。如果用户连续多次点击enter键,则应该只有一个换行符。首先,将换行符标准化,并将其减少为一个(符合您的要求):
这将使您的数据以标准形式显示。以特定方式显示该数据是模板的工作。我没有使用EJS,但从其示例代码看,以下内容似乎可以工作:
<div class = "displayReview">
<% e.reviewText.split('\n').forEach(function(ln) {%>
<%= ln %><br>
<% } %>
</div>
在这种特殊情况下,可能在模板呈现数据后,数据本身会被丢弃,因此特别注意将数据操作与表示分离是一种形式,但这仍然是一种好习惯,使代码更易于以后修改。首先,标准化换行符并将其减少为一个字符(符合您的要求):
这将使您的数据以标准形式显示。以特定方式显示该数据是模板的工作。我没有使用EJS,但从其示例代码看,以下内容似乎可以工作:
<div class = "displayReview">
<% e.reviewText.split('\n').forEach(function(ln) {%>
<%= ln %><br>
<% } %>
</div>
在这种特殊情况下,可能在模板呈现数据之后,数据本身就被丢弃了,因此特别注意将数据操作与表示分离是一种形式,但这仍然是一种好习惯,使代码更容易在以后修改。还值得一提的是,JavaScript并不是严格要求实现这一点的如果您能够修改.displayReview的CSS,则his(除非用户在一行中多次点击enter按钮,否则将有多个换行符)
这可以通过将空白属性更改为“预处理”、“预行”或“预环绕”来实现
例如:
.displayReview {
white-space: pre-wrap;
}
从中,pre、pre-line和pre-wrap之间的差异如下
之前
保留空格序列,仅在源代码和
元素中的换行符处断行。
预先包装
保留空格序列。换行符处、换行符处以及填充行框所需的换行符处断行。
上线前
空格序列被折叠。换行符、换行符和填充行框所需的行被打断。
还值得一提的是,如果您能够修改.displayReview的CSS,则不需要严格使用JavaScript来实现这一点(除非用户连续多次点击enter按钮,否则会出现多个换行符)
这可以通过将空白属性更改为“预处理”、“预行”或“预环绕”来实现
例如:
.displayReview {
white-space: pre-wrap;
}
从中,pre、pre-line和pre-wrap之间的差异如下
之前
保留空格序列,仅在源代码和
元素中的换行符处断行。
预先包装
保留空格序列。换行符处、换行符处以及填充行框所需的换行符处断行。
上线前
空格序列被折叠。换行符、换行符和填充行框所需的行被打断。
我在源代码中读到,你可以看到换行符。你可以使用空白:pre;
来查看空格,但这不是我想要的。一个问题是,你可以看到用户点击很多空格的空格。我在源代码中读到,你可以看到换行符。你可以使用空白:pre
查看空格,但这不是我想要的。一个问题是,你可以看到用户点击了很多空格的空格。哦,太晚了!我正在编写相同的示例。+1为你编写。哦,太晚了!我正在编写相同的示例。+1为你编写。
Sequences of whitespace are preserved. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes.
Sequences of whitespace are collapsed. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes.