Avatar billede bajerfar Nybegynder
16. februar 2006 - 10:53 Der er 1 løsning

Links og linieskift i textarea

Hej Eksperter
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 bajerfar Nybegynder
16. februar 2006 - 11:58 #1
Jeg løste selv problemet. Hvis nogen kan bruge min løsning, så har jeg past'et den nye kode ind herunder.

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

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

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