webForumDet fria alternativet
Logga in / Bli medlem

Avancerad replacefunktion?

ASP

5 svar · 873 visningar · startad av Kapten Haddock

Medlem sedan jan. 2006600 inlägg
Frågan#1

Kan man göra replace funktionen lite mera dynamisk? Jag skulle behöva en kod som klarar av att ta bort http:// och domännamnet från en adress oberoende av hur lång den är. Nånting som skulle börja med HTTP:// och sluta vid nästa "/" tecken.

Medlem sedan okt. 20041 556 inlägg
#2

Sök i forumet på regexp* och använd ett liknande mönster: http://.+/

Medlem sedan jan. 2006600 inlägg
#3

Jag får inte A eller Ö från regexp, helt bortkollrad blir jag.

Medlem sedan dec. 2002299 inlägg
#4

Skriv koden! så ska vi se!

Medlem sedan jan. 2006600 inlägg
#5

Här är koden som jag tog från nån ASP sida och försökte modifiera, lade in den som 404 meddelande och skrev in en URL som inte skulle finnas, skulle detta funkat så skulle koden ha spottat ut nått som https://www.nyurl.fi/blablabla/

InitialString = Request.ServerVariables("QUERY_STRING")

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "http://.+/"
.IgnoreCase = True
.Global = True
End With

ReplacedString = RegularExpressionObject.Replace(InitialString, "www.nyurl.fi/")

Response.Write "Replaced " & InitialString & " with " & ReplacedString

Set RegularExpressionObject = nothing

Vad den spottar ut så är:

Replaced 404;http://www.gammalurl.se/main/swe/default.asp with 404;https://www.nyurl.fi/default.asp

Inte riktigt som planerat...

Medlem sedan jan. 2006600 inlägg
#6

Fixat det själv, denna kod så byter alla domännamn oavsett längd och skickar vidare till en annan domän med samma path:

nDomain = "http://www.domain.fi"
urlPath = Request.ServerVariables("QUERY_STRING")

InitialString = urlPath

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "404;http://.+?/"
.IgnoreCase = True
.Global = True
End With

ReplacedString = RegularExpressionObject.Replace(InitialString, "/")

Set RegularExpressionObject = nothing

newURL = nDomain & ReplacedString
response.Redirect newURL
247 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)