Rails:仅删除某些HTML标记

时间:2014-08-05 23:48:57

标签: ruby-on-rails regex ruby-on-rails-3

如果我有一个如下所示的字符串:

<h3>Some title</h3>
Blah blah blah string I want to keep
<br>

我想仅返回此部分,删除<h3>...</h3>

Blah blah blah string I want to keep

我需要什么样的正则表达式?我现在有这个方法,但它返回<h3>

的内容
def remove_all_html(string)
  sanitize(string, tags: {}).gsub(/&nbsp;/i, ' ')
end

2 个答案:

答案 0 :(得分:0)

如果它总是像这样的简单案例

def remove_all_html(string)
  string.gsub!(/<\w*>(\w*|\s*)*<\/\w*>/, "") # remove any complete tags
  string.gsub!(/<\w*(\s|\/)*>/, "") # remove any standalone or self closing tags
end

应该足够了

答案 1 :(得分:0)

这很有效:

def hide_headings_and_sanitize(string)
  string.slice!(/(<h3>.*<\/h3>)/)
  sanitize(string, tags: {}).gsub(/&nbsp;/i, ' ')
end