免费Pascal Strip只有字符串中的一些HTML标签

时间:2015-11-18 19:35:28

标签: html string lazarus freepascal

我想知道是否可以从字符串中删除特定的html标记。

我想删除仅以per-machine开头的代码。但必须删除所有<img>内容。这是因为我需要从字符串中删除图像。

我已经尝试调整这个程序:

<img ...>

这种方式(改变两行):

function StripHTML(S: string): string;  
var
  TagBegin, TagEnd, TagLength: integer;
begin
  TagBegin := Pos( '<', S);      // search position of first <

  while (TagBegin > 0) do begin  // while there is a < in S 
    TagEnd := Pos('>', S);              // find the matching >
    TagLength := TagEnd - TagBegin + 1;
    Delete(S, TagBegin, TagLength);     // delete the tag
    TagBegin:= Pos( '<', S);            // search for next <
  end;

  Result := S;                   // give the result
end;

但代码处于一个牢不可破的循环中。 :(

1 个答案:

答案 0 :(得分:1)

我应用了@Abelisto的提示,现在正在工作。 这是代码(我必须引用原始代码在这里找到: http://www.festra.com/eng/snip12.htm

function StripHTML(S: string): string;
var
  TagBegin, TagEnd : integer;
begin
  TagBegin := Pos( '<img', S);      // search position of first <

  while (TagBegin > 0) do begin  // while there is a < in S
    TagEnd := PosEx('>', S, TagBegin);              // find the matching >
    Delete(S, TagBegin, (TagEnd - TagBegin) + 1);     // delete the tag
    TagBegin:= Pos( '<img', S);            // search for next <
  end;
  Result := S;                   // give the result
end;