Avatar billede steen_hansen Forsker
27. juli 2002 - 12:04 Der er 4 kommentarer og
1 løsning

REGULAR EXPRESSIONS: Gøre links aktive, både med og uden www

Dette gør alle www-adresser indtastet i et textarea aktive, når de bliver trukket ud på en side:

objRegExp.Pattern = "(\bhttp\:\/\/)?(\bw{3}\.\S+\.[a-z][a-z]+\b)(\/\S+\b)?(\?\S+\b)?"
str = objRegExp.Replace(str, "<a href="&chr(34)&"http://$2$3$4"&chr(34)&" target='_blank'>$1$2$3$4</a>")

Men hvis nu min hjemmeside har adressen

http://inet.tele.dk/steen_hansen/

så har jeg et problem - det gør ikke linket aktivt. Er her én, der har lyst til at hjælpe mig med at få den med?

www.steen_hansen.dk bliver til et aktivt link her på Eksperten. Også i mit script.

Det gør http://inet.tele.dk/steen_hansen/ også, her på Eksperten - bare ikke i mit script :o)
Avatar billede steen_hansen Forsker
27. juli 2002 - 12:13 #1
Test:

inet.tele.dk
Avatar billede eagleeye Praktikant
27. juli 2002 - 13:39 #2
Jeg lavet denne til mit eget formål måske du kan bruge den, den lave links og email adresser om:


Function LinkString(strInput)
Set objRegExpHTTP1 = New RegExp
Set objRegExpHTTP2 = New RegExp
Set objRegExpEMail = New RegExp

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

objRegExpHTTP1.Global = True
objRegExpHTTP2.Global = True
objRegExpEMail.Global = True

objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP2.IgnoreCase = True
objRegExpEMail.IgnoreCase = True

strOutput = objRegExpEMail.Replace(strInput, " <a href='mailto:$1'>$1</a> ")
strOutput = objRegExpHTTP1.Replace(strOutput, " <a href='$1$2' target='_blank'>$1$2</a> ")
strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank'>$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
Set objRegExpEMail = Nothing

LinkString = strOutput
End Function
Avatar billede eagleeye Praktikant
27. juli 2002 - 13:44 #3
Netcoders.dk havde en konkurrence hvem der kunne lave det bedste script til at highlighte link. Her er vinder scriptet:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=859&tech_id=1

Og her er samlige deltages scripte:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=860&tech_id=1

Så det skulle være muligt at finde noget der kan bruges. Jeg kan ikke lige finde konkurrence beskrivelsen så du kunne se de forskellige links som skulle laves om.. Men der ligger sikkert en test fil i source koden så kan man se dem der.
Avatar billede steen_hansen Forsker
27. juli 2002 - 14:16 #4
Hej eagleeye! :o)

Jeg stoler på, at det virker tester det efter senere, skal lige byen.

Jeg har set linket til NetCoders, men regular expressions virker noget bedre og hurtigere, synes jeg.

Tak for hjælpen :o)
Avatar billede steen_hansen Forsker
21. april 2007 - 14:16 #5
Hej eagleeye

Denne her er godt nok gammel, men jeg stod lige og skulle bruge den :)

Den tager adressen dobbelt med, når den åbner i et nyt vindue. Hvordan kan det være?
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