Hallå... Har sett en en gång men kommer inte ihåg var nånstans tyvärr.. Den här skrev jag för länge sen i VB. Den kan kanske optimeras och göras bättre men det är ju en början. Man vill ju inte att vanliga surfare kommer in å skriver html-kod i min gästbok, t.ex. Hmmm... Jag föreslår Server.HTMLEncode(). Stripar inte tagarna men omvandlar dem till vanlig text. eraseHTMLTags=aString Strippa HTML-taggar?
Är det nån därute som har gjort en funktion som tar bort HTML-taggar?
Ja, jag kan ju mecka en själv, men varför uppfinna hjulet igen?
Tacksam för svar...Sv: Strippa HTML-taggar?
Vad skall du med den till?Sv: Strippa HTML-taggar?
<code>
Public Sub eraseHTMLTags(aString As String)
'Cleans aString from HTML-tags
Dim tmpStr As String
Dim pos1 As Integer
Dim pos2 As Integer
Dim pos3 As Integer
While (InStr(1, aString, ">", vbTextCompare) > 0)
pos1 = InStr(1, aString, "<", vbTextCompare)
pos2 = InStr(1, aString, ">", vbTextCompare)
pos3 = pos2 - pos1 + 1
tmpStr = Mid(aString, pos1, pos3)
aString = Replace(aString, tmpStr, "")
Wend
End sub
</code>
JohanSv: Strippa HTML-taggar?
:-)Sv: Strippa HTML-taggar?
Jag modifierade koden för att använda den i ASP...
Sen så provade jag...
Men. Om jag har strängar som inte innehåller några taggar så försvinner de helt. Finns det taggar så tas allt bort mellan första taggen och den sista. Men i det fallet så blir texten kvar.
Hajjar inte, det finns ju en villkors-sats?
Jaja, så här modifierade jag din kod:
<code>
Function eraseHTMLTags(aString)
While (InStr(1, aString, ">", vbTextCompare) > 0)
pos1 = InStr(1, aString, "<", vbTextCompare)
pos2 = InStr(1, aString, ">", vbTextCompare)
pos3 = pos2 - pos1 + 1
tmpStr = Mid(aString, pos1, pos3)
aString = Replace(aString, tmpStr, "")
eraseHTMLTags=aString
Wend
End Function
</code>Sv: Strippa HTML-taggar?
<code>
<%=Server.HTMLEncode("<H1>Jag är Bäst</H1>")%>
</code>Sv: Strippa HTML-taggar?
ska ligga utanför while-satsen
du vill ju alltid att den skall returnera något...så här:
<code>
Function eraseHTMLTags(aString)
While (InStr(1, aString, ">", vbTextCompare) > 0)
pos1 = InStr(1, aString, "<", vbTextCompare)
pos2 = InStr(1, aString, ">", vbTextCompare)
pos3 = pos2 - pos1 + 1
tmpStr = Mid(aString, pos1, pos3)
aString = Replace(aString, tmpStr, "")
Wend
eraseHTMLTags=aString
End Function
</code>
Johan