Platzhalter bei REPLACE. Oder: HTML-Tags entfernen
Daniel
- asp.net
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
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
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
Danke an Tom und Mel! Ihr habt mir geholfen!
Daniel