webForumDet fria alternativet

Avancerad replacefunktion?

5 svar · 871 visningar · startad av Kapten Haddock

Kapten HaddockMedlem sedan jan. 2006600 inlägg
#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.

TravoniMedlem sedan okt. 20041 556 inlägg
#2

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

Kapten HaddockMedlem sedan jan. 2006600 inlägg
#3

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

paddanMedlem sedan dec. 2002299 inlägg
#4

Skriv koden! så ska vi se!

Kapten HaddockMedlem 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...

Kapten HaddockMedlem 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
131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)