Гараж Delphi




Алгоритмы и функции для эффективной разработки приложений в среде программирования Delphi

Обрабатываем HTML

05.04.2010 от semen

При работе с 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, '&', '&amp;');
  s := AnsiReplaceText(s, '"', '&quot;');
  s := AnsiReplaceText(s, '«', '&laquo;');
  s := AnsiReplaceText(s, '»', '&raquo;');
  s := AnsiReplaceText(s, '''', '&#039;');
  s := AnsiReplaceText(s, '<', '&lt;');
  s := AnsiReplaceText(s, '>', '&gt;');
 
  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

Рубрики: Алгоритмы, Разное

Оставьте комментарий

Заметьте: комментарии проверяются автором сайта. Нет смысла отправлять комментарий два раза.