/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
[link]url[/link]?
Fra : crha
Vist : 566 gange
50 point
Dato : 28-07-03 16:08

Hejsa, jeg har set på flere sider at man kan, når noget skal udfyldes, kan skreve [link]www.kandu.dk[/link] i stedet for <a href="www.kandu.dk" target="_blank">www.kandu.dk

Mit spørgsmål er så: Hvordan gør man dette?

Mvh.
Casper

 
 
Kommentar
Fra : Phylock


Dato : 28-07-03 20:04

hmm ville det ikke være smartere at lade den gøre det automatisk ... så hvis der bliver skrivet en url eller mail så bliver det til link
det syntes jeg er nemmere for brugeren da man ikke skal huske at lave [link] tag og hvis man skriver et link er det for det meste fordi at nogle skal have mulighed for at følge det ...

her er 2 sourcecodes der gør det:
http://asp.dk/sources.asp?mode=view_source&cat_id=0&id=1543&tech_id=1
http://asp.dk/sources.asp?mode=view_source&cat_id=0&id=30&tech_id=1

mvh
Phylock`

Kommentar
Fra : crha


Dato : 28-07-03 20:42

Disse sourcecodes har jeg, men jeg vil gerne have det her med [link], da der er et mindre problem der bliver løst af dette.

Kommentar
Fra : gandalf


Dato : 29-07-03 20:30

Hej Crha

For at gøre dette er det nemmeste at bruge regular expressions.

Dette eksempel er ikke testet, da det er skrevet direkte ind hos kandu.dk, men du kan se pricippet.

Gandalf

eks:

Kode
Dim reg
Dim Dintekst
Dintekst = "Dette er et link [link]www.kandu.dk[/link] som er en test"
Set reg = New RegExp

Dim maches
Dim mach

reg.Global = True
reg.IgnoreCase = True

reg.Pattern = "[link]([.]*)?[/link]"
Set maches = reg.Execute(Dintekst)

For Each mach In maches
replace(Dintekst,"<a href='" & mach.SubMatches(1).Value & "' target='_blank'>" & mach.SubMatches(1).Value & "</a>"
Next
set reg = nothing


Kommentar
Fra : gandalf


Dato : 29-07-03 20:32

Jeg var lidt for hurtig erstat lige den replace linie med denne.

replace(Dintekst, Mach.value, "<a href='" & mach.SubMatches(1).Value & "' target='_blank'>" & mach.SubMatches(1).Value & "</a>"


Kommentar
Fra : gandalf


Dato : 29-07-03 20:39

Der er en god beskrivelse af reg expr fra Smilly her :

http://www.kandu.dk/dk/spg/29

Gandalf

Kommentar
Fra : crha


Dato : 29-07-03 23:33

gandalf: Jeg får en fejl med noget med en ')', så sådan en satte jeg til sidst, men nu får jeg følgende fejl: http://cruckie.net/testu.asp

Kommentar
Fra : crha


Dato : 29-07-03 23:36

og det der link fattede jeg ikke meget af ^^

Kommentar
Fra : gandalf


Dato : 29-07-03 23:40

Eftersom replace ikke returnere en værdi skal man ikke have parantes rundt om.

Erstat replace med følgende, jeg var lidt for hurtig.

replace Dintekst,"<a href='" & mach.SubMatches(1).Value & "' target='_blank'>" & mach.SubMatches(1).Value & "</a>"

Gandalf

Kommentar
Fra : crha


Dato : 30-07-03 12:45

Den laver følgende fejl:

Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument

/testu.asp, line 17

(Se selv på: http://cruckie.net/testu.asp)

Kildekoden for filen ser ud som følgende:

<%
Dim reg
Dim Dintekst
Dintekst = "Dette er et link [link]www.kandu.dk[/link] som er en test"
Set reg = New RegExp

Dim maches
Dim mach

reg.Global = True
reg.IgnoreCase = True

reg.Pattern = "[link]([.]*)?[/link]"
Set maches = reg.Execute(Dintekst)

For Each mach In maches
replace Dintekst,"<a href='" & mach.SubMatches(1).Value & "' target='_blank'>" & mach.SubMatches(1).Value & "</a>"
Next
set reg = nothing
%>

=)

Accepteret svar
Fra : gandalf

Modtaget 50 point
Dato : 30-07-03 13:44

Hej crha

Så får du ikke mere for de 50 point. Her er et eksempel som virker.

Gandalf

Kode
<%

Function ReplaceLinks(strInput)
Dim regex, match, matches, Position, strReturn
Position = 1
strReturn = ""


Set regex = New RegExp

regex.Pattern = "\[link\](.*?)\[\/link\]"

regex.IgnoreCase = True
regex.Global = True
Set matches = regex.Execute(strInput)

For Each match In matches
    strReturn = strReturn & Mid(strInput, Position, match.FirstIndex + 1 - Position)
    strReturn = strReturn & "<a href='" & match.submatches(0) & "' target='_blank'>" & match.submatches(0) & "</a>"
Position = Len(match.Value) + match.FirstIndex + 1
Next
ReplaceLinks = strReturn
End Function

Response.write ReplaceLinks ("Dette er et link [link]http://www.kandu.dk[/link] som er en test her er et andet [link]http://www.google.com[/link]")
%>


Kommentar
Fra : crha


Dato : 30-07-03 15:19

Weee, mange tak =) Så virker det :)

Godkendelse af svar
Fra : crha


Dato : 30-07-03 15:19

               

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste