Обрабатываем HTML
При работе с HTML-кодом страниц, довольно часто приходится сталкиваться с обработкой специальных символов. Большинство таких функций “по умолчанию” реализованы в PHP, а вот программистам DELPHI - нужно описывать вручную. Несколько функций для обработки текста:
1. PregQuote - подготовка текста к обработке регулярными выражениями.
function PregQuote(str: string): string; var r: IRegex; m: string; begin r := RegexCreate('([\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])', [rcoIgnoreCase, rcoUngreedy]); m := r.Replace(str,'\$1'); Result := m; end;
2. HtmlSpecialChars - замена спец-символов на HTML-сущности для корректного отображения в браузере. Функция полезна для сохранения HTML-кода в DELPHI, например - генерирования отчёта в html файл.
function HtmlSpecialChars(s: string): string; begin s := AnsiReplaceText(s, '&', '&'); s := AnsiReplaceText(s, '"', '"'); s := AnsiReplaceText(s, '«', '«'); s := AnsiReplaceText(s, '»', '»'); s := AnsiReplaceText(s, '''', '''); s := AnsiReplaceText(s, '<', '<'); s := AnsiReplaceText(s, '>', '>'); Result := s; end;
3. RemoveNonPrintable - удаление “невидимых” символов в тексте. Используются регулярные выражения.
function RemoveNonPrintable(s: string): string; var R: IRegex; begin R := RegexCreate('[^\x20-\xFF]+', [rcoIgnoreCase]); s := R.Replace(s, ' '); R := RegexCreate('\s+', [rcoIgnoreCase]); s := R.Replace(s, ' '); Result := s; end;
См. также:
stripTags для Delphi
Транслит в Delphi
Ошибка в модуле idZLibCompressorBase
