文字列が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?