Test af HTML remove function skriv i felt og se resultatet


- Teksten udskrives med Server.HTMLEncode for at man kan se evt "tags" <snip>
- Der er to functioner som fjerne HTML kode:
Nr.1: Den function som ses lćngere nede pĺ denne side, det er en vidre udvikling af denne removeHTML
Nr.2: En andne function fundet pĺ nettet.
Nr.3: En 3. funktion som er lavet pĺ eksperten.
Nr.4: Hedder stripHTML udvidelse af nr.3
Nr.5: Server.HTMLEncode(string).
Tekst

Note : Jeg er blevet gjort opmćrksom pĺ at man ikke kan copy/paste koden nedefor direkte. Sĺ ĺben "view source" og find koden i HTML koden for siden, og kopier functionen derfra!


Function RemoveHTML( strInputText )
 
  TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
     "BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
     "COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
     "FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
     "INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
     "MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
     "PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
     "TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"  

  Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
    
  Dim nPos1, nPos2, nPos3
  Dim strResult, strTagName, bRemove, bSearchForBlock
  
  Dim runNo, AttackLimit, strRef
  
  runNo = 1
  AttackLimit = 5
  
  strResult = strInputText
  do 
    runNo = runNo + 1
    strRef = strResult
    strText = strRef
    strResult = ""
    
    nPos1 = InStr(strText, "<")
    Do While nPos1 > 0
      nPos2 = InStr(nPos1 + 1, strText, ">")
      If nPos2 > 0 Then
        strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
        strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")
        nPos3 = InStr(strTagName, " ")
        If nPos3 > 0 Then
          strTagName = Left(strTagName, nPos3 - 1)
        End If
        If Left(strTagName, 1) = "/" Then
          strTagName = Mid(strTagName, 2)
          bSearchForBlock = False
        Else
          bSearchForBlock = True
        End If    
        If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
          bRemove = True
          If bSearchForBlock Then
            If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
              nPos2 = Len(strText)
              nPos3 = InStr(nPos1 + 1, strText, " 0 Then
                nPos3 = InStr(nPos3 + 1, strText, ">")
              End If
              If nPos3 > 0 Then
                nPos2 = nPos3
              End If
            End If
          End If
        Else
          bRemove = False
        End If
        If bRemove Then
          strResult = strResult & Left(strText, nPos1 - 1)
          strText = Mid(strText, nPos2 + 1)
        Else
          strResult = strResult & Left(strText, nPos1)
          strText = Mid(strText, nPos1 + 1)
        End If
      Else
        strResult = strResult & strText
        strText = ""
      End If
      nPos1 = InStr(strText, "<")
    Loop
    strResult = strResult & strText
  
  loop until (strRef = strResult) OR (runNo = AttackLimit)
  
  if (runNo >= AttackLimit) then
    strResult = "...text removed..."
  end if
  RemoveHTML = strResult
End Function



TAGLIST bestemmer hvilke HTML tags som skal fjernes. Hvis du řnsker at man eks. vis kan bruge fed skrift <b> tagen kan du fjerne B; fra TAGLIST.

Den 3. funktion som fjerner HTML koder:

Function RemoveHTML( strText )
    Dim RegEx
    Set RegEx = New RegExp
    RegEx.Pattern = "(<[^><]*>)"
    RegEx.Global = True
    strText = Replace(LCase(strText), "
", chr(10)) RemoveHTML = RegEx.Replace(strText, "") End Function

Den 4. funktion som fjerner HTML koder:

Function stripHTML(strText)
    Dim oRegEx, Match, Matches, strResult, arrTags, Tag, boolNoStrip
    arrTags = Split("html;head;meta;title;body;p;img;div;span;form;input;select;textarea;a;br;b;i;u", ";")
    strResult = ""
    Set oRegEx = New RegExp
    oRegEx.Pattern = "[^<>]+|(<.*?>)"
    oRegEx.Global = True
    oRegEx.IgnoreCase = True
    Set Matches = oRegEx.Execute(strText)
  For Each Match in Matches
        If InStr(Match,"<") = 1 Then
            boolNoStrip = True
            For Each Tag In arrTags
                If InStr(LCase(Match),"<" & Tag) = 1 Or InStr(LCase(Match),"
Dámské odevy Dres Messi a atletické oblecení. Užijte si pocit získání nových Fotbalové dresy levne vláken, aniž byste vyprázdnili Fotbalové dresy peneženku, když nakupujete prodej u Detské Fotbalové Dresy našich žen. At už hledáte nejnovejší basketbalové oblecení basketbalové boty s nejnovejšími kombinézami, váš dokonalý soubor Cyklistické dresy mestských odevu. Máme na výber z mnoha stylových a elegantních šatu. Navštivte náš obchod s basketbalové boty oblecením ješte dnes! Hledáte ideální šaty na svatbu nebo zvláštní príležitost?