webForumDet fria alternativet

Rensa från länk, regex eller replace eller något.

ASP

4 svar · 284 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Svaret finns säkert här men jag har letat och letat.

Har en sträng med htmlkod som jag vill rensa från alla länkar.
Alltså allt mellan <a href....> samt </a> ska bort och inget behöver skrivas i stället.
Hur fixar jag det?

Medlem sedan dec. 200012 464 inlägg
#2
str = "hejsan nu <a href=a.asp> dum </a> vill jag bara <a href=b.asp> dummare </a> ha kvar"
set r = new regexp
r.ignorecase = true
r.global = true
r.pattern = "(\<a.*?\<\/a\>)"
response.write r.replace(str,"")
Medlem sedan mars 20015 287 inlägg
#3

Det där funkade ju iofs kalas, men (varför är livet fullt av en massa "men"?) jag klarar dock inte av att kombinera det med ett annat script.
Någon som är villig att göra ett försök?

<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.solbulle.com/", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

Set RegEx = New RegExp
RegEx.Global = True

RegEx.Pattern = "end ad"
strHTML= RegEx.Replace(strHTML,( chr(253) ))
RegEx.Pattern = "palmpilot"
strHTML= RegEx.Replace(strHTML,( chr(254) ))
RegEx.Pattern = chr(253) & "[^" & chr(254) & "]*" & chr(254)
Set strOut = RegEx.execute(strHTML)

strHtml = strOut.Item(0)
Set RegEx = Nothing

strHtml = Replace(strHtml,chr(253)," ")
strHtml = Replace(strHtml,chr(254)," ")

Response.Write strHtml 

'osså det nya scriptet

str = "hejsan nu <a href=a.asp> dum </a> vill jag bara <a href=b.asp> dummare </a> ha kvar"
set r = new regexp
r.ignorecase = true
r.global = true
r.pattern = "(\<a.*?\<\/a\> )"
response.write r.replace(str,"")
%>

Att bara sätta str = strHtml gick ju inte och jag har prövat lite andra varianter.
Antar att det är replacen i den första funktionen som ställer till det, eller?

Medlem sedan mars 20015 287 inlägg
#4

Ok, problemet verkar uppstå när det är radbrytningar i den inkommande strängen.

Hur rensar jag en sträng (eg. htmlkod) från radbrytningar?

Har sökt men hittar inget som jag får att fungera.

Function Radbryt(rfix) 
rfix = Replace(rfix,vbCrLf," ")
Radbryt = rfix   
End Function

Fungerar om jag klistrar in samma text i ett formulär men inte om jag försöker köra den direkt???

Någon som har en ide?

Medlem sedan mars 20015 287 inlägg
#5

Pust & flämt.

Set RegEx = New RegExp
RegEx.Global = True

RegEx.pattern = "(\n)"
strHtml = RegEx.replace(strHtml, " ")

Pust!

266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)