【发布时间】:2017-07-23 20:45:37
【问题描述】:
在我的表单中,我将 contenteditable div 的内容复制到一个隐藏字段中,该字段将发送到数据库。
<%= form_for(@comment, remote: true) do |f| %>
<%= f.hidden_field :content, class: 'js-NewCommentContentShadow' %>
<div class="js-NewCommentContentField" contenteditable="true"></div>
<% end %>
我正在像这样在视图中呈现该数据
<div><%=raw comment.content %></div>
问题是,按回车键输出这个换行符
<div>
<br>
</div>
您可以连续添加多个换行符,这很好。但在某些时候,我想去掉所有连续的换行符,所以在文本之前或之后只允许一个换行符。
这可能发生在 contenteditable 内容被复制到影子输入时,或者当表单被提交时,或者以某种方式在视图中......我不挑剔。
以下是我希望如何影响输出的一些示例:
这个:
Some text
<div>
<br>
</div>
Some more text
很好,应该保持原样。
这个:
Some text
<div>
<br>
</div>
<div>
<br>
</div>
Some more text
应该改为
Some text
<div>
<br>
</div>
Some more text
这个:
Some text
<div>
<br>
</div>
<div>
<br>
</div>
<div>
<br>
</div>
应该改为:
Some text
【问题讨论】:
-
您是否尝试过使用
gsub?例如:comment.content.gsub("<br>", ""). -
这是删除所有换行符。当按下返回键时,我想要换行符。但我只想允许一个连续的换行符。
-
我试过
comment.content.gsub("<div><br></div><div><br></div>", "<div><br></div>"),但它不起作用。无论如何它都行不通,因为我需要考虑无限数量的这些字符串。 gsub 可以吗? -
comment.content的具体内容是什么? -
我不知道,这是用户生成的评论。它可以由文本和任意数量的
<div><br></div>实例组成。
标签: javascript jquery ruby-on-rails