检查iframe是否在文本中

时间:2014-01-17 12:27:39

标签: html ruby regex

p.content
 => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras gravida quis orci sed pellentesque. Nam ullamcorper. Proin eget dapibus tellus. <br /><br /><iframe title=\"title\" src=\"http://www.youtube.com/embed/yt_video_id\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"\"></iframe>"

我想知道是否可以检查p.content文本内是否存在youtube iframe。

2 个答案:

答案 0 :(得分:2)

我认为没有那么多选择;你必须解析字符串并检查解析的对象是否符合你的期望,例如:

require 'nokogiri'

fragment = Nokogiri::HTML.fragment(p.content)
fragment.css('iframe[src*="www.youtube.com"]').any?
# => true

fragment.css('iframe[src*="www.google.com"]').any?
# => false

答案 1 :(得分:0)

您可以使用include?方法检查字符串是否包含包含某些文本的子字符串:

p.content.include? "iframe"  

以下是include?http://ruby-doc.org/core-2.1.0/String.html#method-i-include-3F

的文档