Avatar billede roadi Nybegynder
10. februar 2003 - 12:09 Der er 15 kommentarer og
1 løsning

Link Function

Hej Experter!

Jeg har en link fuktion som automatisk oversætter en link fra en indtastnings box til en klikbar link i visningen.

Den virker kun til alm. web adresser er der nogen der også kan få den til at gøre det med mail adresser?

Her er min funktion


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

                                        objRegExpHTTP1.Pattern = "(http|ftp|irc|nntp)(:\/\/[\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='smallink'>$1$2</a> ")
                                        strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank' class='smallink'>$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

/Roadi
Avatar billede KingMedia Novice
10. februar 2003 - 12:42 #1
objReg.Pattern = "(\S+@{1}\S+\.\w+\b)"
  strText = objReg.Replace(strText, "<a href=""mailto:$1"">$1</a>")

skulle kunne gøre det...

Husk selv at ændre navnet ;o)

/Mads
Avatar billede roadi Nybegynder
10. februar 2003 - 13:08 #2
Hvilket navn skal jeg ændre?
Avatar billede roadi Nybegynder
10. februar 2003 - 13:12 #3
Hvor skal jeg indsætte din kode henne??
Avatar billede KingMedia Novice
10. februar 2003 - 13:13 #4
navnet på objektet..... 

de andre kalder du "objRegExpHTTP2.Pattern "

men du kan jo kalde det hvad du vil :o)

/Mads
Avatar billede KingMedia Novice
10. februar 2003 - 13:15 #5
Hvis du roder med Regular Expressions, og Functions i al almindelighed, så burde du da vide det ? :o)

/Mads
Avatar billede roadi Nybegynder
10. februar 2003 - 13:19 #6
Ja, det kan godt være, men så meget har jeg ikke rodet med det, koden jeg har sendt, har jeg fået herfra. Jeg stadig newbee i Functions og Regular expressions, derfor disse måske lidt åndsvage spørgsmål.


/Roadi
Avatar billede KingMedia Novice
10. februar 2003 - 13:26 #7
Nej nej .. sådan var det nu ikke ment :o)

prøv med det her...

------------------------
Function LinkString2(strInput)
Set objRegExpHTTP1 = New RegExp
Set objRegExpHTTP2 = New RegExp
Set objRegExpMAILTO1 = New RegExp
objRegExpHTTP1.Pattern = "(http|ftp|irc|nntp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
objRegExpHTTP2.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,3}[\w\S]*)"

objRegExpHTTP1.Global = True
objRegExpHTTP2.Global = True
objRegExpMAILTO1.Global = True

objRegExpMAILTO1.IgnoreCase = True
objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP2.IgnoreCase = True

strOutput = objRegExpHTTP1.Replace(strInput, " <a href='$1$2' target='_blank' class='smallink'>$1$2</a> ")
strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank' class='smallink'>$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")
objRegExpMAILTO1.Pattern = "(\S+@{1}\S+\.\w+\b)"
strOutput = objRegExpMAILTO1.Replace(strOutput, "<a href=""mailto:$1"">$1</a>")

set objRegExpMAILTO1 = Nothing
Set objRegExpHTTP2 = Nothing
set objRegExpHTTP1 = Nothing

LinkString2 = strOutput
End Function

--------------------------

/Mads
Avatar billede roadi Nybegynder
10. februar 2003 - 13:37 #8
Thx.. Men jeg for syntax error
Avatar billede KingMedia Novice
10. februar 2003 - 13:38 #9
hvor og hvad ?
Avatar billede roadi Nybegynder
10. februar 2003 - 13:39 #10
Syntax error

/roadi/news_tester/default.asp, line 488

Function LinkString2(strInput)
Avatar billede KingMedia Novice
10. februar 2003 - 14:01 #11
Hvordan kalder du funktionen?
Avatar billede roadi Nybegynder
10. februar 2003 - 14:03 #12
Må man kun ha' en function pr .asp fil?

Der hvor jeg bruger functionen, er en nyhedsside, hvor alle funktioner er indbygget ved hjælp af modes.

Jeg bruger link functionen ved visningen af Nyheder og igen når der skal sendes nyheder ud via jmail.
Avatar billede KingMedia Novice
10. februar 2003 - 14:06 #13
Nej .. du kan sagtens have mange functions..... 
Men generelt, så smider man alle functions i toppen af en fil, og kalder dem der hvor der er brug for det...
Avatar billede KingMedia Novice
10. februar 2003 - 14:06 #14
og du kalder den f.eks sån her ?

LinkString2(Request.Form("besked"))
?
Avatar billede roadi Nybegynder
10. februar 2003 - 14:43 #15
Endnu et dumt spørgsmål til professoren.

Når jeg nu har fået det hele til at virke, hvilket jeg har.

Den har svært ved at hitte ud af hvis mail adressen står som det første efter et linje skift. eks.

bla bla spat
bla@bla.dk

Så bliver mailadressen spat<br><br> bla@bla.dk hvorfor det?

/Roadi
Avatar billede roadi Nybegynder
11. februar 2003 - 21:48 #16
Jeg lukker tråden med stort tak..
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

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