从数组中删除html标记

时间:2015-02-09 10:52:49

标签: ruby-on-rails ruby

我正在研究redmine插件(限制我改变某些方法),我有一些像下面这样的单词

["h1.", "Wiki", "\r\n", "qweqwe", "\r\n", "additional", "\r\n", "<br>", "\r\n", "<br>", "\r\n", "{{toc}}", "\r\n", "<br>", "\r\n", "<br>", "\r\n", "Hello", "World<br>", "\r\n", "<br>", "\r\n", "<br>"]

我想要做的是剥离所有html标记,包括此数组中的新行符号,以保留单词。有没有办法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

只需加入ActionView::Helpers::SanitizeHelper并执行以下操作:

x.map{ |item| strip_tags(item.squish) }.reject(&:empty?)
  • squish删除空行
  • sanitize删除标记
  • rejec(&:empty?)删除空字符串

答案 1 :(得分:1)

AFAIK,没有内置的方法来实现这一点,但它很容易实现:

s = [...]
s.map { |e| 
  r = e.gsub(/\r|\n|<.*?>/, '').strip
  r.empty? ? nil : r 
}.compact
#⇒ => [
#  [0] "h1.",
#  [1] "Wiki",
#  [2] "qweqwe",
#  [3] "additional",
#  [4] "{{toc}}",
#  [5] "Hello",
#  [6] "World"
#]

或者reject

s.map { |e| 
  e.gsub(/\r|\n|<.*?>/, '').strip
}.reject(&:empty?)

当然,您可以自由地改进regexp的模式以删除您想要删除的内容。