Techioz Blog

文字列がHTMLかRubyでないかを確認する

概要

文字列が HTML であるか、Ruby を使用していないことを確認するにはどうすればよいでしょうか?

文字列に HTML タグが含まれている場合は true を返し、それ以外の場合は false を返します。

解決策

このテストは非常に簡単に実行できます。

def has_html_tag?(string)
  string =~ /<html.*?>/
end

has_html_tag?('<html lang="en">foo</html>') #=> true
has_html_tag?('12345') #=> false

ただし、このテストは、文字列が有効な HTML ドキュメントまたは有効な HTML フラグメントであるかどうかを判断するには十分ではありません。

Nokogri gem から基本的な HTML 検証を取得できます。

$ gem install nokogiri

require 'nokogiri'

Nokogiri::HTML.parse("<foo>bar</foo>").errors.empty?