Module: StringTools::Sanitizing
- Included in:
- StringTools
- Defined in:
- lib/string_tools.rb
Instance Method Summary collapse
-
#clear_control_characters(string) ⇒ Object
Public: вычищает ASCII Control Characters из строки.
-
#clear_unicode_separator_characters(string) ⇒ Object
Public: вычищает Unicode символы-разделители из строки.
- #sanitize(text, options = {}) ⇒ Object
-
#strip_all_tags_and_entities(string) ⇒ Object
Public: вычищает все html тэги и пробельные символы.
-
#strip_tags_leave_br(string) ⇒ Object
Public: вычищает html тэги кроме переносов.
Instance Method Details
#clear_control_characters(string) ⇒ Object
Public: вычищает ASCII Control Characters из строки
string - String строка, из которой удаляем символы
Returns String
102 103 104 |
# File 'lib/string_tools.rb', line 102 def clear_control_characters(string) string.tr("\u0000-\u001f", '') end |
#clear_unicode_separator_characters(string) ⇒ Object
Public: вычищает Unicode символы-разделители из строки
string - String строка, из которой удаляем символы
Returns String
111 112 113 |
# File 'lib/string_tools.rb', line 111 def clear_unicode_separator_characters(string) string.tr("\u2028-\u2029", '') end |
#sanitize(text, options = {}) ⇒ Object
91 92 93 94 95 |
# File 'lib/string_tools.rb', line 91 def sanitize(text, = {}) sanitizer = .delete(:sanitizer) sanitizer = StringTools::Sanitizer::Base.new unless sanitizer.respond_to?(:sanitize) sanitizer.sanitize(text, ) end |
#strip_all_tags_and_entities(string) ⇒ Object
Public: вычищает все html тэги и пробельные символы
string - String строка для очистки
Examples
("<a>ссылка с пробелом</a><p>параграф	с\tтабуляцией</p>")
# => "ссылкаспробелом параграфстабуляцией "
Returns String
125 126 127 |
# File 'lib/string_tools.rb', line 125 def (string) Sanitize.fragment(string.gsub(/&#([0-9]|10|11|12|13);| |\xc2\xa0|\s/, '')) end |
#strip_tags_leave_br(string) ⇒ Object
Public: вычищает html тэги кроме переносов
string - String строка для очистки
Examples
("<a></a><ul><li>элемент списка</li></ul><p>параграф</p>просто перенос<br>")
# => "<br />элемент списка<br /><br />параграф<br />просто перенос<br>"
Returns String
139 140 141 142 143 144 145 146 147 |
# File 'lib/string_tools.rb', line 139 def (string) sanitized = Sanitize.fragment(string, remove_contents: %w(style javascript), 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 |