Avatar billede webhelpers Praktikant
25. februar 2009 - 22:32 Der er 6 kommentarer

Erstat link

Hej

Vi har et forum, hvor vi gerne vil erstatte links som brugerne forsøger at skrive med en tekst (Link fjernet). Findes der en intelligent regexp til dette?

Det skal fungere til vbscript.

Vh Bo
Avatar billede webhelpers Praktikant
25. februar 2009 - 22:56 #1
Den skal også tage højde for at brugeren fx indtaster et link således eksperten.dk
Avatar billede webhelpers Praktikant
25. februar 2009 - 23:11 #2
Regexp skal også kunne tillade en bestemt url. Hvis vi antager forumet hedder www.forum.dk så dette link og varianter af dette være tilladt.
Avatar billede nicklasb Nybegynder
27. februar 2009 - 10:06 #3
Det bliver pludseligt en meget vag definition af "et link." Altså - hvis "eksperten.dk" skal være et link, er der vel nærmest ingen grænser for, hvad der kan være et link?

- Så er en streng der efter en vilkårlig streng, indeholder et punktum efterfulgt af mindst to bogstaver, igen efterfulgt af en stort set vilkårlig streng?
Det kan du klare med noget lignnede [^\s]+\.[a-z]{2,}[^\s]*

Det giver næsten ikke mening at tage højde for, at der måske kan stå http://, ftp:// eller lignende foran, hvis det alligevel ikke
er sikkert det står der. Men hvis du gerne vil have det, kan du eventuelt bruge noget lignende (?:(?:http|ftp):\/\/)?[^\s]+\.[a-z]{2,}[^\s]*

Men eventuelt må du lige definere "et link" lidt mere præcist.
Avatar billede webhelpers Praktikant
04. marts 2009 - 10:50 #4
Hej
Tak for dit svar.

Lad os antage forummet hedder www.forum.dk

- Det skal være tilladt at skrive forum.dk og www.forum.dk og ellers alle linktekst varianter af denne. Dog skal html-tegn fjernes, da dette ikke tillades, heller ikke selvom det er internt på forum.dk
- alle andre linkangivelser end ovenstående skal erstattes med "link fjernet" tekst

Filteret kan vel kun give problemer såfremt brugeren konstruerer en sætning som slutter med punktum og starter uden mellemrum med .com eller .dk?
Avatar billede nicklasb Nybegynder
04. marts 2009 - 19:46 #5
Er det kun com- og dk-domæner der skal censureres væk? Hvis ikke, har du jo ingen chance for, for eksempel at vide om "ver 5.beta" er et domæne.

Har du prøvet det regulære udtryk jeg postede i kommentar #3?

Hvis du vil sortere et enkelt domæne fra dit resultat, kan du eventuelt sætte det regulære udtryk fra #3 i en parantes og tilføje en negativ look-behind, alá: (?<![^\s]*eksempel\.dk)
Avatar billede nicklasb Nybegynder
15. marts 2009 - 19:42 #6
Har du fået det til at virke?
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