module StringTools::Sanitizing

Public Instance Methods

clear_control_characters(string) click to toggle source

Public: вычищает ASCII Control Characters из строки

string - String строка, из которой удаляем символы

Returns String

# File lib/string_tools.rb, line 94
def clear_control_characters(string)
  string.tr("\u0000-\u001f", '')
end
clear_unicode_separator_characters(string) click to toggle source

Public: вычищает Unicode символы-разделители из строки

string - String строка, из которой удаляем символы

Returns String

# File lib/string_tools.rb, line 103
def clear_unicode_separator_characters(string)
  string.tr("\u2028-\u2029", '')
end
sanitize(text, options = {}) click to toggle source
# File lib/string_tools.rb, line 83
def sanitize(text, options = {})
  sanitizer = options.delete(:sanitizer)
  sanitizer = StringTools::Sanitizer::Base.new unless sanitizer.respond_to?(:sanitize)
  sanitizer.sanitize(text, options)
end
strip_all_tags_and_entities(string) click to toggle source

Public: вычищает все html тэги и пробельные символы

string - String строка для очистки

Examples

strip_all_tags_and_entities("<a>ссылка с&nbsp;пробелом</a><p>параграф&#9;с\tтабуляцией</p>")
# => "ссылкаспробелом параграфстабуляцией "

Returns String

# File lib/string_tools.rb, line 117
def strip_all_tags_and_entities(string)
  Sanitize.fragment(string.gsub(/&#([0-9]|10|11|12|13);|&nbsp;|\xc2\xa0|\s/, ''))
end
strip_tags_leave_br(string) click to toggle source

Public: вычищает html тэги кроме переносов

string - String строка для очистки

Examples

strip_tags_leave_br("<a></a><ul><li>элемент списка</li></ul><p>параграф</p>просто перенос<br>")
# => "<br />элемент списка<br /><br />параграф<br />просто перенос<br>"

Returns String

# File lib/string_tools.rb, line 131
def strip_tags_leave_br(string)
  sanitized = Sanitize.fragment(string, remove_contents: %w(style script), elements: %w(p ul li br blockquote))

  sanitized.gsub!(/<(p|li|blockquote)[^>]*>/, '')
  sanitized.gsub!(%r{<(br /|ul[^>]*|/[^>]*)>}, '<br />')
  sanitized.gsub!(/<br \/>(\s|\302\240)+/, '<br />')

  sanitized
end