Avatar billede bajerfar Nybegynder
16. februar 2006 - 13:03 Der er 4 kommentarer og
1 løsning

Links og linieskift i textarea

Hej Eksperter
Var vist lidt for hurtig til at lukke mit spørgsmål. Min løsning var ikke tilstrækkelig, så jeg vil gerne slå spørgsmålet op igen:

Når man i min gæstebog laver www-adresser i et textarea, laver koden herunder www-adressen til et href link. Dette virker fint, men hvis brugeren efter at have indtastet en www-adresse laver et linieskift og derefter en ny tekst, laver koden både www-adressen og linieskiftet og teksten i den nye linie til et link - som naturligvis ikke virker (ex.: http://www.google.com<br>teksttekst) Har nogen et forslag til, hvordan jeg indsætter en betingelse i min kode.
Det skal siges, at jeg ikke slev har lavet koden, så har ikke helt styr på den.
Håber jeg har forklaret mig godt nok, ellers spørg.

Function LinkString2(strInput)
    Set objRegExpHTTP1 = New RegExp
    Set objRegExpHTTP2 = New RegExp

    objRegExpHTTP1.Pattern = "(http|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
    objRegExpHTTP2.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,3}[\w\S]*)" 

    objRegExpHTTP1.Global = True
    objRegExpHTTP2.Global = True

    objRegExpHTTP1.IgnoreCase = True
    objRegExpHTTP2.IgnoreCase = True

    strOutput = objRegExpHTTP1.Replace(strInput, " <a href='$1$2' target='_blank' class='tekstLink'>$1$2</a> ")
    strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank' class='tekstLink'>$2</a> ")

    objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])('>)"
    strOutput = objRegExpHTTP2.Replace(strOutput, "$2")
    objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])(' target=)"
    strOutput = objRegExpHTTP2.Replace(strOutput, "$2")
    objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])(</a>)"
    strOutput = objRegExpHTTP2.Replace(strOutput, "$2$1")

    Set objRegExpHTTP2 = Nothing
    set objRegExpHTTP1 = Nothing
    LinkString2 = strOutput
End Function
Avatar billede thesurfer Nybegynder
18. februar 2006 - 03:00 #1
Prøv med:

tekst = replace(tekst, "<br>", vbCrLF)
tekst = LinkString2(tekst)

Når dataene skal udskrives til browseren, erstatter du vbCrLf med "<br>":

tekst = rs("tekst") ' du henter sikkert teksten fra en database..
tekst = replace(tekst, "<br>", vbCrLf)
response.write tekst


/theSurfer
Avatar billede bajerfar Nybegynder
18. februar 2006 - 17:50 #2
jeps .. selv arbejdet videre på løsning, og er endt med netop dit forslag som løsningen
Avatar billede thesurfer Nybegynder
18. februar 2006 - 18:51 #3
Så må det være en rigtig løsning.. smider et svar :-)

/theSurfer
Avatar billede bajerfar Nybegynder
18. februar 2006 - 19:05 #4
Den virker!
Avatar billede thesurfer Nybegynder
18. februar 2006 - 19:08 #5
Det er jo kanon! :-)

/theSurfer
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