Daniel: Platzhalter bei REPLACE. Oder: HTML-Tags entfernen

Hallo!

Ich habe eine Zeichenkette namens str, die Text und HTML-Code enthält. Nun möchte ich daraus alle HTML-Tags entfernen, also alles, was so aussieht: <irgendwas> . Wie geht das? Ich habe vor allem an REPLACE gedacht, weiss aber nicht, wie man dort Platzhalter setzen kann!

Danke im Voraus!

Daniel

  1. Hi,

    Ich habe eine Zeichenkette namens str, die Text und HTML-Code enthält. Nun möchte ich daraus alle HTML-Tags entfernen, also alles, was so aussieht: <irgendwas> . Wie geht das?

    Der folgende Code funktioniert ganz gut, wo genau ich den damals her hatte weiss ich leider nicht mehr. Glaube von Stardeveloper.com.

    '----------------snip---------------
    'The following code strips the HTML tags from strHTML using split and join
       dim arysplit, i, j, strOutput

    arysplit = split(str, "<")

    'Assuming paragraph-text is nonempty, we want to start iterating
        'from the 2nd array postition
        if len(arysplit(0)) > 0 then j = 1 else j = 0   'Loop through each instance of the array
        for i=j to ubound(arysplit)
           'Do we find a matching > sign?
           if instr(arysplit(i), ">") then
             'If so, snip out all the text between the start of the string
             'and the > sign
             arysplit(i) = mid(arysplit(i), instr(arysplit(i), ">") + 1)
           else
             'Ah, the < was was nonmatching
             arysplit(i) = "<" & arysplit(i)
           end if
        next   'Rejoin the array into a single string
        strOutput = join(arysplit, "")

    'Snip out the first <
        strOutput = mid(strOutput, 2-j)

    'Convert < and > to < and >
        strOutput = replace(strOutput,">",">")
        strOutput = replace(strOutput,"<","<")

    '----------------snip---------------

    Gruss, Mel

  2. Hallo!

    Hallo

    Ich habe eine Zeichenkette namens str, die Text und HTML-Code enthält. Nun möchte ich daraus alle HTML-Tags entfernen, also alles, was so aussieht: <irgendwas> . Wie geht das? Ich habe vor allem an REPLACE gedacht, weiss aber nicht, wie man dort Platzhalter setzen kann!

    Eine Möglichkeit wäre:

    Dim arrStr1
    Dim arrStr2
    'Zwei Arrays deklarieren
    Dim x
    Dim y
    'Zwei Integer, die den Index des höchsten Felds enthalten
    Dim i
    'Counter
    Dim strText
    'Unser Text

    arrStr1 = Split(str,"<")
    'Jedes Feld enthält den Text nach einem "<" bis zum nächsten "<" (wobei die "<" gelöscht werden)

    x = UBound(arrStr1)
    'Anzal Felder in arrStr1

    For i=0 to x
      arrStr2 = Split(arrStr(i),">")
      'Ein Feld von arrStr1 wird in bei jedem ">" gespaltet
      ' (in html-Tag und Text)
      strText = strText & "/" & arrStr2(1)
      'Text wird zusammengefügt, "/" als Trennzeichen
    Next

    Hab das ganze nur so hingekrizelt, sollte jedoch etwa funktionieren. Problematisch wird es, wenn du "<" und ">" im String hast, die nichts mit HTML zutun haben. Im Text selbst kannst du sie codieren, wenn du jedoch JS benutzst musst du dies zuerst rausfiltern.

    MfG

    Tom2

  3. Danke an Tom und Mel! Ihr habt mir geholfen!

    Daniel