Avatar billede janr Nybegynder
19. maj 2003 - 09:10 Der er 12 kommentarer og
1 løsning

Søg og erstat i ASP streng

Jeg har brug for at kunne søge en streng igennem for "##xxxx:zzzz##" (uden citationstegn) hvor xxxx:zzzz er noget vilkårligt, som f.eks. Image123:right, som så skal erstattes med "<img src="Image123.jpg" align="right">"

Er der en af jer kloge hoveder, der har en ide til hvordan man kan gøre dette på en smart måde?
Avatar billede tiger_webdesign Nybegynder
19. maj 2003 - 09:15 #1
du kan evt. søge efter ":" og gå til det næste og forrige mellemrum.
Avatar billede tiger_webdesign Nybegynder
19. maj 2003 - 09:16 #2
undskyld... læste ikke spørgsmålet... du skal selvføølgelig gå til det næste og forige "##"
Avatar billede janr Nybegynder
19. maj 2003 - 09:21 #3
Ja, det var selvfølgelig en mulighed. Jeg burde dog måske have nævnt, at indholdet mellem de 2 gange ## ikke nødvendigvis er i formatet xxxx:yyyy men kan også bare være xxxx.
Avatar billede ellebaek Nybegynder
19. maj 2003 - 10:27 #4
så længe det er imellem ## kan du søge efter dem...

hvor mange forekomster af billeder kan der være i en streng?
Avatar billede oasen Nybegynder
19. maj 2003 - 10:33 #5
Function Erstat(Streng)
    Set regEx = new RegExp
    regEx.Pattern = "(##)[\w\W]{1,}\:[\w\W]{1,}(##)"
    regEx.IgnoreCase = true
    regEx.Global = true
    Set Matches = regEx.Execute(Streng)
    For Each Match in Matches
        ArrMatch = Split(Match.Value, ":")
        Erstat = Replace(Streng, Match.Value, "<img src=""" & ArrMatch(0) & ".jpg"" align=""" & ArrMatch(1) & """>")
    Next
End Function

Response.Write Erstat("blabla##image123:right##blabla")
Avatar billede janr Nybegynder
19. maj 2003 - 10:37 #6
SUPER!! Det var lige dét jeg søgte.
Jeg har selv førsøgt mig frem, men kunne ikke klare at skrive noget helt så pænt/logisk.

Mange tak for hjælpen :-)
Avatar billede oasen Nybegynder
19. maj 2003 - 10:39 #7
"Erstat" skal lige hedde "Streng" i løkken.
Nederst skriver du så Erstat = Streng
Avatar billede janr Nybegynder
19. maj 2003 - 10:43 #9
Lige et hurtigt spørgsmål vedr. regEx.Pattern. Fanger den også de tilfælde hvor der ikke er et kolon mellem ## og ## ?
Avatar billede oasen Nybegynder
19. maj 2003 - 10:55 #10
Nej...
Avatar billede oasen Nybegynder
19. maj 2003 - 10:57 #11
Hvis den skal gøre det, skal du lave din pattern lidt om:

"(##)[\w\W]{1,}(##)"
Avatar billede oasen Nybegynder
19. maj 2003 - 10:57 #12
Men så får du fejl længere nede, fordi array'et derfor er tomt.
Avatar billede janr Nybegynder
19. maj 2003 - 10:59 #13
Endnu en gang super mange tak for hjælpen!! Så slap jeg lige for at lære RegExp's lidt forvirrende koder.
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