Just nu i M3-nätverket
Gå till innehåll

Problemet bör åtgärdas...


Stefan Eklinder

Rekommendera Poster

Erik Junesjö
Lite trött nu men jag ser inte vad som inte kommer med i skärmdumpen... Syftar du inte på den brutalt långa länken som kortats ner?
Min länk http://www.sr.se som syns i första rutan ser jag inte i den andra.

//Erik

 

Länk till kommentar
Dela på andra webbplatser

aha men det beror kanske på att du har två länkar direkt efter varandra?

Då tolkas det som en enda länk...

 

http://www.sr.sehttp://www.sr.se

 

Förstod jag rätt?

 

/OZn

_______________________________________________________

Microchips - De små potatisflingorna du äter allra sist i chipspåsen

[inlägget ändrat 2004-10-07 16:29:53 av OZn]

Länk till kommentar
Dela på andra webbplatser

Jag lägger in den här när jag städat upp den lite. :)

Kanske fler som har nytta av den...

 

/OZn

_______________________________________________________

Microchips - De små potatisflingorna du äter allra sist i chipspåsen

 

Länk till kommentar
Dela på andra webbplatser

Erik Junesjö
Jag lägger in den här när jag städat upp den lite. :)

Kanske fler som har nytta av den...

Perfekt :)

//Erik

 

[inlägget ändrat 2004-10-19 15:45:29 av Erik Junesjö]

Länk till kommentar
Dela på andra webbplatser

Koden:

 

[log]'**** Korta ner långa länkar ****

Function CutLongLinks(strText)

Set objReg = New regexp

objReg.Global = True

objReg.IgnoreCase = True

'Mönstret kan du ju ändra till det du använder nu...

objReg.Pattern = "(www.[^ ]*[a-z])|(http://[^ ]*[a-z])"

iSIndex = 1

iEIndex = 1

For Each objMatch in objReg.Execute(strText)

'Sätter maxlängd på länk till 40

If Len(objMatch)>40 Then

'Om länk längre än 40tecken så använd endast 25 tecen av början och 10 tecken i slutet av länken

iEIndex = objMatch.FirstIndex

strFix = strFix & Mid(strText, iSIndex, iEIndex-iSIndex+1)

strFix = strFix & "<a href='"&objMatch.Value &"' target='_blank'>"& Left(objMatch.Value,25) &"..."& Right(objMatch.Value,10) &"</a>"

Else

'Om länk mindre än 40 tecken så görs den bara om till en klickbar länk

iEIndex = objMatch.FirstIndex

strFix = strFix & Mid(strText, iSIndex, iEIndex-iSIndex+1)

strFix = strFix & "<a href='"&objMatch.Value &"' target='_blank'>"& objMatch.Value&"</a>"

End If

iSIndex = iEIndex+objMatch.Length+1

Next

Set objReg = Nothing

strFix = strFix & Mid(strText, iSIndex)

CutLongLinks = strFix

End Function

 

'**** Splitta långa ord ****

Function FormatPost(strText)

Set objReg = New RegExp

objReg.Pattern = "([^<>\s]{50,50})([^<>\s]{1,})"

objReg.IgnoreCase = True

objReg.Global = True

strFix=""

iSIndex = 1

iEIndex = 1

For Each objMatch in objReg.Execute(strText)

'Om det inte är en länk lägg in en <br>

If Not Left(objMatch.SubMatches(0),7)="http://"'>http://" Then

iEIndex = objMatch.FirstIndex

strFix = strFix & Mid(strText, iSIndex, iEIndex-iSIndex+1)

strFix = strFix & objMatch.SubMatches(0) & "<br>" & objMatch.SubMatches(1)

iSIndex = iEIndex+objMatch.Length+1

End If

Next

strFix = strFix & Mid(strText, iSIndex)

Set objReg = Nothing

If strText=strFix Then

FormatPost=strFix

Else

FormatPost=FormatPost(strFix)

End If

End Function[/log]

 

Exempel på användning:

Response.Write(CutLongLinks(FormatPost(Replace("http://www.dddddd.dd/fffffffff/rrrrrrrrrrrrrr",VbCrLf," <br>"))))

 

Jag skulle tippa på att du har någon replacefunktion men isåfall behöver du ju bara anropa functionerna därifrån. Notera att det måste vara ett mellanslag innan <br> replacen.

Mönstret på länkarna kan du ju ändra till det ni använder nu. Sen går det ju att fixa så ena funktionen anropar den andra automatiskt. I övrigt kan jag inte garantera att det är buggfritt men nu ligger ju koden här så andra kanske kan fixa med den i så fall :)

 

EDIT: Som du ser så godtar mitt url-mönster även www. Om du vill ha det så eller ha andra mönster som exempelvis ftp:// så måste du lägga till det villkoret i funktionen så inte länken splittas sönder av ett <br>. Det ser du nog själv men jag skriver det ändå:

 

If Not Left(objMatch.SubMatches(0),7)="http://" Or Not Left(objMatch.SubMatches(0),6)="ftp://" Or Not Left(objMatch.SubMatches(0),3)="www" Then

 

/OZn

_______________________________________________________

Microchips - De små potatisflingorna du äter allra sist i chipspåsen

[inlägget ändrat 2004-10-07 17:46:56 av OZn]

Länk till kommentar
Dela på andra webbplatser

Självklart! Har du användning av den så är det bara att klippa/klistra :)

 

/OZn

_______________________________________________________

Microchips - De små potatisflingorna du äter allra sist i chipspåsen

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...