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.
Avancerad replacefunktion?
5 svar · 871 visningar · startad av Kapten Haddock
Sök i forumet på regexp* och använd ett liknande mönster: http://.+/
Jag får inte A eller Ö från regexp, helt bortkollrad blir jag.
Skriv koden! så ska vi se!
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...
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