Om man vill ta bort all HTML-kod från en sträng, måste man köra replace då? Är det enda sättet om man verkligen vill ha bort dem alla och inte vill köra Server.HtmlEncode på strängen? Har skrivit en funktion som kanske gör det du vill: får följande felmeddelande när jag testar din funktion Men en funktion som bara plockar bort allt mellan < och > gillar jag inte riktigt. Den kollapsar om en användare i löpande texten har matat < eller > som därmed inte är del av en html-tag.Ta bort HTML från textsträng
Finns det i så fall nån vänlig själ som har gjort en sådan bra fungerande funktion och kan dela med sig av den? :-)Sv: Ta bort HTML från textsträng
<code>
Public Function StripHTML(Text)
Dim Result
Dim Length
Dim LeftPos
Dim RightPos
Result = Text
Length = Len(Result)
If Length Then
LeftPos = 1
Do
LeftPos = InStr(LeftPos, Result, "<")
If LeftPos Then
RightPos = InStr(LeftPos, Result, ">") + 1
If RightPos > 1 Then
Mid(Result, LeftPos) = Mid(Result, RightPos)
Length = Length - RightPos + LeftPos
Else
Exit Do
End If
Else
Exit Do
End If
Loop
StripHTML = Left(Result, Length)
End If
End Function
</code>Sv: Ta bort HTML från textsträng
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'Mid'
/rensahtml.asp, line 21
min testkod ser ut så här:
<%
test = "<html><head><body>test</body></html>"
response.write StripHTML(test)
Function StripHTML(Text)
Dim Result
Dim Length
Dim LeftPos
Dim RightPos
Result = Text
Length = Len(Result)
If Length Then
LeftPos = 1
Do
LeftPos = InStr(LeftPos, Result, "<")
If LeftPos Then
RightPos = InStr(LeftPos, Result, ">") + 1
If RightPos > 1 Then
Mid(Result, LeftPos) = Mid(Result, RightPos)
Length = Length - RightPos + LeftPos
Else
Exit Do
End If
Else
Exit Do
End If
Loop
StripHTML = Left(Result, Length)
End If
End Function
%>
vad gör jag för fel?Sv: Ta bort HTML från textsträng
Det jag strävar efter är att HTML-tagsen verkligen tas bort, inte att man skriver ut dem som vanliga tecken eller liknande.
Någon nämnde RegExp... Vad är det?