Hur gör jag för att ersätta all HTML i en sträng UTOM <br>. Om du börjar med att ta bort alla radbrytningar borde det fungera: Testa med denna: » strContent = Replace(strContent,vbCrLf,"") » Nu tar den enbart bort taggarna och jag kommer inte på något vettigt sätt att få bort koden i själva taggarna men detta är väl alltid lite hjälp?? Vill du ha kvar alla radbrytningar som fanns innan i texten eller ska bara radbrytningarna som specificeras med < br> finnas kvar? Om bara < br> ska finnas kvar borde det fungera om du kör den koden jag skrev allra först (tror jag). Ja du har rätt, det borde fungera. Jag fortsatte spåna på dina variant och fick det att funka hyfsat. testa:Rensa HTML i en sträng
Först ersätter jag alla <br> med vbCrLf för att inte bli av med dom vid rensningen.
strContent = Replace(strContent,"<br>",vbCrLf)
Därefter använder jag en funktion som rensar HTML.
Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
RemoveHTML = RegEx.Replace(strText, "")
End Function
Och slutligen läser jag tillbaka vbCrLf till <br>
strContent = Replace(strContent ,vbCrLf, "<br>")
Men... det funkar inte, när jag rensar blir det nämligen "tomt" på en del rader i strängen som bara innehåller html och dessa tolkas då sen som vbCrLf när jag försöker läsa tillbaka <br> (tror jag...)
Jag får alltså på vissa ställen i texten jäääättestora hopp mellan styckena.
Vad gör jag för fel?Sv: Rensa HTML i en sträng
strContent = Replace(strContent,vbCrLf,"")
/JohanSv: Rensa HTML i en sträng
<% Function Ersatt(incoming)
incoming = Replace("<br>","<br>")
incoming = Replace("<","")
incoming = Replace(">","")
Ersatt = incoming %>
Nu tar den enbart bort taggarna och jag kommer inte på något vettigt sätt att få bort koden i själva taggarna men detta är väl alltid lite hjälp??Sv: Rensa HTML i en sträng
Det fungerar inte den läser bort alla radmatningar när jag provar... Funderar lite på om funktionen även rensar vbCrLf?Sv: Rensa HTML i en sträng
Njäe... det betyder ju att jag får en massa html som brödtext... det vill jag ju inte ha... plus att jag vill ha kvar <br>Sv: Rensa HTML i en sträng
/JohanSv: Rensa HTML i en sträng
Jag kollade html koden och där ligger inte så mycket <br> utan mest <p> taggar.
Med andra ord så gör Replace(strContent,"<br>",vbCrLf) ingen nytta utan det läses in vbCrLf i stängen som radbryter själva koden.
När jag sen ersätter vbCrLf med <br> efter rensningen så får jag med en massa extra radmatningar där det funnits rader som hade enbart html-kod.
Likadant om jag testar din variant så plockar jag bort rubbet innan och då försvinner samtliga radmatningar....
Att en sån liten sak (trodde jag...) ska kunna ställa til med så mycket bekymmer...Sv: Rensa HTML i en sträng
strContent = Replace(strContent,vbCrLf,"")
strContent = Replace(strContent,"</P>",vbCrLf & vbCrLf)
strContent = Replace(strContent,"<br>",vbCrLf)
strContent = RemoveHTML(strContent)
strContent = Replace(strContent ,"<br>",vbCrLf)
Kanske lite långsökt... finns det bättre lösning?Sv: Rensa HTML i en sträng
<code>
strContent = Replace(strContent,"<br>","<br>")
'ta bort HTML
strContent = Replace(strContent,"<br>","<br>")
</code>