Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:16 Der er 10 kommentarer og
1 løsning

Fejl i RegExp - eller hvad?

Hej!

Jeg har lavet nedenstående script til et system, jeg er igang med at lave. Funktionen skal kunne finde Modul.Nyheder.X eller Modul.Kontakt.X, hvor X kan være, hvad som helst.

Det ser sådan ud:

----------

Function InsertModule(String)
    Set regEx = New RegExp
    regEx.Pattern = "Modul\.Nyheder\.[a-z0-9]+"
    regEx.IgnoreCase = False
    regEx.Global = True
    Set Matches = regEx.Execute(String)
        For Each Match in Matches
            arrMatch = Split(Match.Value, ".")
            If arrMatch(1) = "Nyheder" Then
                String = Replace(String, Match.Value, "= PrintLatestNews(" & arrMatch(2) & ")")
            Elseif arrMatch(1) = "Kontakt" Then
                String = Replace(String, Match.Value, "= PrintContact" & arrMatch(2) & "()")
            End if
        Next
    InsertModule = String
End Function

----------

Problemet er bare, at når jeg så bruger funktionen, så får jeg følgende fejl:

Microsoft VBScript compilation  error '800a0409'

Unterminated string constant

/demo/modules/standard.asp, line 76

PrintPageText = Replace(page("site_content"), "
-----------------------------------------------^

Er der nogen, der kan hjælpe?

Venlig hilsen,
Sebastian Kraaijenzank
Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:17 #1
Hov, lige en rettelse med hensyn til Pattern:

regEx.Pattern = "Modul\.(Nyheder|Kontakt)\.[a-z0-9]+"
Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:20 #2
Endnu en opdatering. Når den så har fundet f.eks. Modul.Nyheder.X, så skal dette laves om til:

= PrintLatestNews(X)
Avatar billede thesurfer Nybegynder
24. september 2005 - 22:21 #3
Den melder fejl i linien: PrintPageText = Replace(page("site_content"), "

...?

Hvor er resten af linien..?

/theSurfer
Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:23 #4
Det er hele linjen - mærkeligt nok. Pilen peger desuden på det sidste gåseøje.
Avatar billede thesurfer Nybegynder
24. september 2005 - 22:25 #5
Det er da klart, når den sidste del mangler :-)

Replace bruges sådan: replace(streng, "det der skal ændres", "det der skal ændres til")

Du mangler "det der skal ændres til".. :-)

/theSurfer
Avatar billede thesurfer Nybegynder
24. september 2005 - 22:27 #6
Ekempel:
info = "hugo er en trold"

info = replace(info, "trold", "hund")

Hvis man udskriver info (response.write info), får man: hugo er en hund

/theSurfer
Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:28 #7
Hehe, nej, det gør jeg ikke.

Det hele skal jo ende ud i, at der bliver valgt denne sætning:

Replace(String, Match.Value, "= PrintLatestNews(" & arrMatch(2) & ")")

Der er netop 3 inputs.
Avatar billede thesurfer Nybegynder
24. september 2005 - 22:29 #8
Find den linie, der starter med: PrintPageText = Replace(...

Hvad står der der?

/theSurfer
Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:35 #9
Hov, undskyld. Det havde faktisk slet ikke noget med selve min funktion at gøre.

Tak, fordi du gjorde mig opmærksom på fejlen - du får halvdelen af points :)
Avatar billede thesurfer Nybegynder
24. september 2005 - 22:36 #10
Du kan bare selv beholde dem.. det er ok med mig :-)

/theSurfer
Avatar billede znuggle.com Nybegynder
24. september 2005 - 22:48 #11
Mange tak for hjælpen ;-)
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