delphi 过滤网页代码 <SCRIPT></SCRIPT>


本文整理自网络,侵删。

 
uses StrUtils;

function ClearScript(AHtml: string): string;
const
  csHead = '<SCRIPT';
  csTail = '</SCRIPT>';
  cnHead = length(csHead);
  cnTail = length(csTail);
var
  nHeadPos: integer;
  nTailPos: integer;
  nNewSearchPos: integer;
  nHtmlLength: integer;
  sCapHtml: string;
  sFilteredHtml: string;
  nHtmlPos: integer;
  nSecSize: integer;

  function FindHeadPos: boolean;
  begin
    nHeadPos := PosEx('<SCRIPT', sCapHtml, nNewSearchPos);
    result := nHeadPos > 0;
  end;

  function FindTailPos: boolean;
  begin
    nTailPos := PosEx('</SCRIPT>', sCapHtml, nHeadPos + cnHead);
    result := nTailPos > 0;
  end;

begin

  nHtmlLength := length(AHtml);
  nNewSearchPos := 1;
  nHtmlPos := 1;
  sCapHtml := UpperCase(AHtml);

  while FindHeadPos do
  begin

    nSecSize := nHeadPos - nHtmlPos;
    if nSecSize > 0 then
    begin
      sFilteredHtml := sFilteredHtml + Copy(AHtml, nHtmlPos, nSecSize);
    end;

    nHtmlPos := nHeadPos + cnHead;

    if FindTailPos then
    begin
      nNewSearchPos := nTailPos + cnTail;
      nHtmlPos := nTailPos + cnTail;
    end
    else
      break;

  end;

  nSecSize := nHtmlLength - nHtmlPos + 1;

  if nSecSize > 0 then
  begin
    sFilteredHtml := sFilteredHtml + Copy(AHtml, nHtmlPos, nSecSize);
  end;
  result := sFilteredHtml;
end;


procedure TForm2.Button1Click(Sender: TObject);
begin
memo2.Text:=ClearScript(memo1.Text);
end;

相关阅读 >>

Delphi xe10 fdmemtable 数据保存本地和从本地加载

Delphi 用浏览器来显示带图片的邮件内容,图片无需保存为本地文件

Delphi入门语法

Delphi tfilestream 打开模式与共享模式

Delphi rest请求控件增加请求头时不编码

Delphi中显示gif动画

Delphi防止因系统崩溃而丢失任务栏的图标(重建托盘图标)

Delphi downloadtomemory

Delphi 搜索字符串在流中的位置

Delphi winapi: messagebeep - 播放一个系统声音

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...