/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
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
InsertHyperlinks
Fra : Jan Kristensen


Dato : 19-02-06 11:05

Hej Ng

dette script bruger jeg for at finde f.eks www.asp.dk i en tekst, men hvis
der f.eks står xxxx<br>www.asp.dk
xxxx
virker scriptet ikke efter
hensigten.
Problemet er, at scriptet ikke fanger <br>. Det er ikke mit eget script, men
et jeg har fundet på nettet.

Gode forslag modtages.


Mvh

Jan

<%
Function InsertHyperlinks(inText)
Dim objRegExp, strBuf
Dim objMatches, objMatch
Dim Value, ReplaceValue, iStart, iEnd

strBuf = ""
iStart = 1
iEnd = 1
Set objRegExp = New RegExp

objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"
objRegExp.IgnoreCase = True ' Set case insensitivity.
objRegExp.Global = True ' Set global applicability.
Set objMatches = objRegExp.Execute(inText)
For Each objMatch in objMatches
iEnd = objMatch.FirstIndex
strBuf = strBuf & Mid(inText, iStart, iEnd-iStart+1)
If InStr(1, objMatch.Value, "@") Then
strBuf = strBuf & GetHref(objMatch.Value, "EMAIL", "_BLANK")
Else
strBuf = strBuf & GetHref(objMatch.Value, "WEB", "_BLANK")
End If
iStart = iEnd+objMatch.Length+1
Next
strBuf = strBuf & Mid(inText, iStart)
InsertHyperlinks = strBuf
End Function


Function GetHref(url, urlType, Target)
Dim strBuf

strBuf = "<a href="""
If UCase(urlType) = "WEB" Then
If LCase(Left(url, 3)) = "www" Then
strBuf = "<a href=""http://" & url & """ Target=""" & _
Target & """>" & url & "</a>"
Else
strBuf = "<a href=""" & url & """ Target=""" & _
Target & """>" & url & "</a>"
End If
ElseIf UCase(urlType) = "EMAIL" Then
strBuf = "<a href=""mailto:" & url & """ Target=""" & _
Target & """>" & url & "</a>"
End If

GetHref = strBuf

End Function

%>



 
 
Jens Gyldenkærne Cla~ (20-02-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-02-06 12:42

Jan Kristensen skrev:

> Problemet er, at scriptet ikke fanger <br>.

Det skyldes at udtrykket der finder links, matcher en ordgrænse
(\b) før og efter linket. Tegnet > opfattes ikke som en ordgrænse -
derfor bliver adressen <br>www.min.adresse ikke fundet.


> Gode forslag modtages.

Det bør kunne løses ved at lave en tegngruppe bestående af en
ordgrænse (\b) samt et >-tegn (og tilsvarende med et <-tegn på
"bagsiden" af udtrykket).


> objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"

Prøv at rette ovenstående linje til følgende:

objRegExp.Pattern = "[\b>](www|http|\S+@)\S+[\b<]"


Det skulle også matche <p>www.min.adresse

- men ikke <a
href="http://www.din.adresse/">.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jan Kristensen (20-02-2006)
Kommentar
Fra : Jan Kristensen


Dato : 20-02-06 17:20

Hej

har prøvet det, men jeg kan ikke få det til at virke, men (se ned)


> objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"
>
> Prøv at rette ovenstående linje til følgende:
>
> objRegExp.Pattern = "[\b>](www|http|\S+@)\S+[\b<]"

dette har jeg fået til at virke :


strTekst = replace(strTekst,"<br>"," <br> ")

strTekst = InsertHyperlinks(strTekst)


Mvh

Jan



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste