Avatar billede peer Nybegynder
28. januar 2002 - 13:44 Der er 10 kommentarer og
1 løsning

Opdele streng

Jeg har et lille spørgsmål.

Jeg henter HTTP_REFERER ud på en side. Hvis en bruger kommer fra http://www.minlink.dk/hejhej.htm, bliver HTTP_REFERER = http://www.minlink.dk/hejhej.htm.

Nu er det at jeg kun vil have at variablen som indeholder HTTP_REFERER skal indeholde http://www.mitlink.dk og ikke andet. Hvordan får jeg denne del ud af strengen.
Avatar billede atoft Nybegynder
28. januar 2002 - 13:55 #1
Brug regular expression.

javascript

a = HTTP_REFERER;
a = a.replace(/(http://.*[^/])/gi,$1);
Avatar billede torbenmelander Nybegynder
28. januar 2002 - 13:56 #2
Du kunne bruge Request.ServerVariables("HOST_NAME") el. Request.ServerVariables("SERVER_NAME") ...

Hvis du kun vil have filnavnet skal du bare bruge denne:

strFilename = Mid(Request.ServerVariables("PATH_INFO"),InStrRev(Request.ServerVariables("PATH_INFO"),"/")+1)
Avatar billede atoft Nybegynder
28. januar 2002 - 14:02 #3
Det skulle være

a = a.replace(/http://[^/]*)/gi,"$1");
Avatar billede peer Nybegynder
29. januar 2002 - 09:31 #4
// atoft

har du løsningen i VBScript
Avatar billede peer Nybegynder
29. januar 2002 - 09:37 #5
// melander

Din sidste linie giver rigtig nok kun filnavnet, men det er lige præcis det jeg ikke gider at have jeg vil kun have http://www.mitlink.dk og ikke andet.

Kan du hjælpe her?
Avatar billede torbenmelander Nybegynder
29. januar 2002 - 09:48 #6
Kan du ikke bruge Request.ServerVariables("HOST_NAME") el. Request.ServerVariables("SERVER_NAME") ...

ellers prøver jeg lige at bikse noget sammen ...
Avatar billede peer Nybegynder
29. januar 2002 - 10:20 #7
Nej, det giver ikke noget resultat.
Jeg har undersøgt det lidt nærmere og jeg skal bruge HTTP_REFERER.
For at få strenge ud skriver jeg:

hostfra = Request.ServerVariables("HTTP_REFERER")

Nu vil jeg kun have http://www.mitlink.dk og ikke http://www.mitling.dk/index.asp

Jeg kunne forestille mig at man skal lede efter den 3 / og så fjerne alt der kommer derefter. Således man kun har http://www.mitlink.dk tilbage.
Avatar billede atoft Nybegynder
29. januar 2002 - 11:21 #8
Følgende funktion er lånt fra MSDN'en

Function ReplaceTest(patrn, replStr)
  Dim regEx, str1              ' Create variables.
  str1 = "The quick brown fox jumped over the lazy dog."
  Set regEx = New RegExp            ' Create regular expression.
  regEx.Pattern = patrn            ' Set pattern.
  regEx.IgnoreCase = True            ' Make case insensitive.
  ReplaceTest = regEx.Replace(str1, replStr)  ' Make replacement.
End Function

Nu skulle du kunne bruge

MsgBox(ReplaceTest("(http://[^/]*)/", "$1"))
Avatar billede atoft Nybegynder
29. januar 2002 - 11:23 #9
Det var noget fordrukken sludder jeg. Vender tilbage.
Avatar billede peer Nybegynder
29. januar 2002 - 17:07 #10
Torben gav mig en ide, derfor pointene.
Avatar billede torbenmelander Nybegynder
29. januar 2002 - 18:06 #11
Ok, tak for point :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester