Hej
Jeg har fundet dette script som kan finde og aktivere links i en
tekst. Det virker sådan set også fint, men der er bare lige et
problem. Det "opfatter" alle ord, efterfulgt af et punktum som et
link og aktiverer ordet. Kan man forhindre dette og hvordan?
Håber i forstår hvad jeg mener...På forhand tak.
mvh M.Arildsen
<%
' ===[ AutoHighLight af Janus Kamp Hansen ]
=================================
'
'
'
' Forklaring:
' Denne funktion kan highlighte http adresser.
'
' De kriterer som den udvælger er når to ord er sammensat med et
punktum. Dette
' er så vidt jeg kan se den eneste måde at validere hvorvidt
dette er en http adresse.
' Så finder funtionen start og slut på adressen, enten ved at
finde starten på et
' htmltag eller et mellemrum. Herefter undersøges den udklipede
streng for om der er punktum
' efter adressen og fjerner dette i <a href>-tagget. Hvis ikke
adresse starter med
http:// så på-
' hæftes dette og yderligere lægges <a href>-tagget omkring
strengen. Tilslut
' indsættes den udklippede streng igen i helheden. Dette
fortsætter til helheden er gennemløbet.
' Som en ekstra lille feature, så tager funktionen også højde for
om adressen er en email
' adresse og indsætter i stedet <a mailto:>-tagget.
'
' Koden er skrevet på engelsk mht. at andre nationalitet kunne
bruge denne.
'
'
=================================================================
==========
Function AutoHighlight(Streng)
sString = Streng
DotFound = 0
StringEOF = False
Do Until StringEOF = True
DotFound = InStr((DotFound + 1), sString, ".")
If Not DotFound = 0 then
If (Mid(sString, DotFound -1, 1) <> " ") And (Mid(sString,
DotFound +1, 1) <> " ") then
StartAttempt1 = InstrRev(sString, " ", DotFound)
StartAttempt2 = InstrRev(sString, ">", DotFound)
If StartAttempt1 > StartAttempt2 then StringStartPos =
(StartAttempt1 + 1) Else StringStartPos = (StartAttempt2 + 1)
EndAttempt1 = Instr(DotFound + 1, sString, " ")
EndAttempt2 = Instr(DotFound + 1, sString, "<")
Select Case EndAttempt1
Case 0
StringEndPos = EndAttempt2
Case Else
If EndAttempt1 < EndAttempt2 Then StringEndPos =
(EndAttempt1) Else StringEndPos = (EndAttempt2)
End Select
If StringEndPos = 0 then StringEndPos = Len(sString) + 1
httpaddr = Mid(sString, StringStartPos, (StringEndPos -
StringStartPos))
If mid(httpaddr, len(httpaddr), 1) = "." then httpaddr =
mid(httpaddr,1, len(httpaddr) -1)
If not
cbool(InStr(1, httpaddr, "@")) then
If UCase(mid(httpaddr, 1, 7)) <> UCase("
http://") then
correcthttpaddr = "http://" & httpaddr
Else
correcthttpaddr = httpaddr
End If
ReplaceAddressWith = "<a href=""" & correcthttpaddr &
""">" & httpaddr & "</a>"
sString = mid(sString, 1, StringStartPos - 1) &
ReplaceAddressWith & Mid(sString, StringEndPos, len(sString))
DotFound = StringStartPos + len(ReplaceAddressWith)
Else
If UCase(mid(httpaddr, 1, 7)) <> UCase("mailto:") then
correctaddr = "mailto:" & httpaddr
Else
correctaddr = httpaddr
End If
ReplaceAddressWith = "<a href=""" & correctaddr & """>" &
httpaddr & "</a>"
sString = mid(sString, 1, StringStartPos - 1) &
ReplaceAddressWith & Mid(sString, StringEndPos, len(sString))
DotFound = StringStartPos + len(ReplaceAddressWith)
End If
End If
Else
StringEOF = True
End if
Loop
AutoHighlight = sString
End Function
%>
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials