Avatar billede likedon Nybegynder
01. november 2004 - 11:28 Der er 7 kommentarer og
1 løsning

sletning mellem 2 tags

Hvod sletter jeg alt tekst mellem 2 tags incl tages

ex.

hej mit navn er blab <edited><editID>blablab</editID><editDate>38291,5370601852</editDate></edited> mere tekst her



det skal blive til det her:
hej mit navn er blab mere tekst her
Avatar billede squashguy Nybegynder
01. november 2004 - 11:41 #1
str = "hej mit..."

Set regex = New RegExp
regex.Global = True

regex.Pattern = "<([^>]+)>[\s\S]*<\/\1>"
str2 = regex.Replace(str, "")
Avatar billede likedon Nybegynder
01. november 2004 - 12:07 #2
den fjerne da alle tags gør den ikke? den skal kun fjerne ovenståen tags, hvis der står <b> så er det ok
Avatar billede mortency Nybegynder
01. november 2004 - 12:34 #3
Dim pos
Dim tmpBegin
Dim tmpEnd
Function RemoveHTML(strSource)
Do
  pos = 1
  tmpBegin = inStr(pos,strSource,"<")
  If tmpBegin > 0 Then
    pos = tmpBegin
    If LCase(mid(strSource,tmpBegin,7)) = "<script" Then
      tmpEnd = Instr(tmpBegin,LCase(strSource),"</script>")
      strSource = Left(strSource,tmpBegin-1) & Right(strSource,Len(strSource)-tmpEnd-8)
    ElseIf Lcase(mid(strSource,tmpBegin,2)) = Chr(60) & "%" Then
      tmpEnd = Instr(tmpBegin,Lcase(strSource),"%" & Chr(62))
      strSource = Left(strSource,tmpBegin-1) & Right(strSource,Len(strSource)-tmpEnd-3)
    Else
      tmpEnd = InStr(pos,strSource,">")
      If tmpEnd > 0 Then
        strSource = Left(strSource,tmpBegin-1) & Right(strSource,Len(strSource)-tmpEnd)
      Else
        strSource = Left(strSource,tmpBegin-1)
    Exit Do
    End If
  End If
  Else
  Exit Do
  End If
Loop
RemoveHTML = strSource
End Function
Avatar billede mortency Nybegynder
01. november 2004 - 12:36 #4
Eller denne så kan du sette inn html koden den skal fjerne selv i taglist.

Function RemoveHTML( strText )
    Dim TAGLIST
    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
    Dim nPos2
    Dim nPos3
    Dim strResult
    Dim strTagName
    Dim bRemove
    Dim bSearchForBlock
   
    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, "</" & strTagName, vbTextCompare)
                        If nPos3 > 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
   
    RemoveHTML = strResult
End Function
%>
Avatar billede mortency Nybegynder
01. november 2004 - 12:37 #5
Outputet blir slik:
<%
'Fra database
RemoveHTML(adoRs("DittFelt"))

'String
RemoveHTML(dinstring)
%>
Avatar billede squashguy Nybegynder
01. november 2004 - 14:27 #6
Hvis start/slut tag altid er <edited> kan du bruge

regex.Pattern = "<edited>[\s\S]*</edited>"
str2 = regex.Replace(str, "")
Avatar billede likedon Nybegynder
01. november 2004 - 16:12 #7
Undskyld ventetiden var lige til fordrag
squashguy>> simplet og lige til, og den kan det jeg skal bruge.
er sikker på det andet også virker, men der lige lovlig meget kode til jeg gider kigge det igennem.

squashguy - smid et svar
Avatar billede squashguy Nybegynder
02. november 2004 - 12:51 #8
i orden
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester