Rails'simple_format的"inverse"怎么做?
How to do the "inverse" of Rails' simple_format?
Rails 中的 simple_format
助手将接受文本输入并将换行符转换为 p
或 br
标记,这与我正在尝试的完全相反去完成。
我该如何截取 HTML 的片段,如下所示:
<p>Lorem</p>
<p>Ipsum.
<br />
Lorem ipsum.
<br />
Lorem ipsum.
</p>
<p>
Lorem ipsum.
</p>
并将其转换为如下所示:
Lorem\n\nIpsum.\nLorem ipsum.\nLorem ipsum.\n\nLorem ipsum.
new_html = html
.gsub("\n", '') # remove existing new lines
.gsub('</p>', "</p>\n") # add a new line per para tag
.gsub('<br />', "<br />\n") # add a new line per break tag
ActionController::Base.helpers
.strip_tags(new_html) # remove all html tags
作为对先前答案的补充,您可能需要添加 .gsub('<br/>', "<br/>\n")
以防中断标记是这种方式 .gsub('<div/>', "<div/>\n")
。只需确保您要替换所有必须中断文本的标签。
Rails 中的 simple_format
助手将接受文本输入并将换行符转换为 p
或 br
标记,这与我正在尝试的完全相反去完成。
我该如何截取 HTML 的片段,如下所示:
<p>Lorem</p>
<p>Ipsum.
<br />
Lorem ipsum.
<br />
Lorem ipsum.
</p>
<p>
Lorem ipsum.
</p>
并将其转换为如下所示:
Lorem\n\nIpsum.\nLorem ipsum.\nLorem ipsum.\n\nLorem ipsum.
new_html = html
.gsub("\n", '') # remove existing new lines
.gsub('</p>', "</p>\n") # add a new line per para tag
.gsub('<br />', "<br />\n") # add a new line per break tag
ActionController::Base.helpers
.strip_tags(new_html) # remove all html tags
作为对先前答案的补充,您可能需要添加 .gsub('<br/>', "<br/>\n")
以防中断标记是这种方式 .gsub('<div/>', "<div/>\n")
。只需确保您要替换所有必须中断文本的标签。