---
title: "Korta ner länknamn"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/107107-korta-ner-länknamn"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Erik Juhlin"
published: "2004-07-12T07:57:10.000Z"
updated: "2008-02-25T15:28:36.000Z"
replies: 7
views: 7015
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/107107-korta-ner-länknamn"
---

# Korta ner länknamn

## #1 — Erik Juhlin, 2004-07-12T07:57Z

En funktion för att korta ner länknamn (inom \<a\>\\\</a\>). Fungerar som webForums.

```
Function ShortenLinkName(sHTML, lFirstLength, lLastLength)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.IgnoreCase = True
	
	objRegExp.Pattern = "(<a [^>]+>)([\s\S]{" & lFirstLength & "}?)([\s\S]+?)([\s\S]{" & lLastLength & "}?)(</a>)"
	
	ShortenLinkName = objRegExp.Replace(sHTML, "$1$2...$4$5")
	Set objRegExp = Nothing
End Function
```

wF lägger till mellanslag mellan \> och ) så de får ni ta bort!

GLHF - Good Luck Have Fun!

Permalänk: https://www.webforum.nu/p/107107

## #2 — brorsan, 2008-02-25T11:56Z

Ok, en nybörjarfråga, hur får jag in den funktionen i den här koden? 

```

response.write "</td>"

response.write "<td width=""70%"" valign=""top"">"

strNyText = ""
strText = rs("message")

varArray = split (strText, " ")
for i = 0 to ubound(varArray)
    strNyText = strNyText & Left(varArray( i ), 50) & " "
next

strComText = server.HTMLEncode(strNyText)
strComText = Replace(strComText,vbcrlf,"<BR>")

Response.Write strComText

response.write "</td>"
response.write "</tr>"
response.write "</table>"
end if

response.write "<img src=""images/grafic/pixel_grey.gif"" width=""462"" height=""1""><br>"

rs.movenext
Count = Count + 1
loop
```

Permalänk: https://www.webforum.nu/p/2084896

## #3 — Erik Juhlin, 2008-02-25T12:01Z

Om du har en text som innehåller länkar (t.ex. \<a href="somewhere"\>asdf asdf asdf asdf asdf\</a\>) så skriver du bara:

```
txt = ShortenLinkName(txt, 5, 5)
```

Permalänk: https://www.webforum.nu/p/2084899

## #4 — brorsan, 2008-02-25T12:09Z

Nu hänger jag inte med på vad du svarade på Erik. :)

Jag har forumkoden jag klistrade in där uppe i dagsläget, resultatet i forumet blir så här: 

<http://www.skate.nu/forum_topic.asp?id=3316>

Istället vill jag att alla texter som börjar med www. eller http:// eller <http://www>. automatiskt ska bli länkar. 

och att alla långa länkar ska kortas så att man bara ser början och slutet med ... emellan. 

dessutom vill jag att alla långa ord typ "blablablablablablablablablablablablablablablablablabla" ska visas som "blablablablablabla....blablablablablabla". 

Går det genom att kombinera min kod ovanför och din funktion ovanför? 

Eftersom jag inte skrivit koden själv och inte förstår den så mycket, skulle det vara schysst om nån kan sammanfoga koderna och lägga allt komplett i en kodruta, klart att ersätta i min asp-fil. 

Lösa koder kommer jag inte riktigt veta var jag ska få in dem.  

Tack på förhand. 

Har du slutat skata förresten? Kommer ihåg din skatesida från back in the days.

Permalänk: https://www.webforum.nu/p/2084901

## #5 — voigtann1, 2008-02-25T13:11Z

Kan kanske vara bra att starta en tråd på ASP forumet för din fråga men

Använd Eriks:

```
Function ShortenLinkName(sHTML, lFirstLength, lLastLength)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.IgnoreCase = True
	
	objRegExp.Pattern = "(<a [^>]+>)([\s\S]{" & lFirstLength & "}?)([\s\S]+?)([\s\S]{" & lLastLength & "}?)(</a>)"
	
	ShortenLinkName = objRegExp.Replace(sHTML, "$1$2...$4$5")
	Set objRegExp = Nothing
End Function
```

Och:

```
Function LinkURL(str)
	Dim objRegExp, strTemp
	Set objRegExp = New RegExp

	objRegExp.IgnoreCase = True
	objRegExp.Global = True
	objRegExp.Pattern = "(\b(www\.|http\://)\S+\b)"
	strTemp = objRegExp.replace(str, "<a href=""http://$1"" target=""_new"">$1</A>")
	LinkURL = Replace(strTemp, "http://http://","http://")
	Set objRegExp = Nothing
End Function
```

(Kan skrivas bättre men hittade bara denna när jag googlade).

Efter:

```
strComText = server.HTMLEncode(strNyText)
strComText = Replace(strComText,vbcrlf,"<BR>")
```

Skriver du:

```
strComText = LinkURL(strComText)
strComText = ShortenLinkName(strComText, 5, 5)
```

Permalänk: https://www.webforum.nu/p/2084918

## #6 — brorsan, 2008-02-25T13:39Z

Kan starta en ny tråd där istället om ni föredrar det? 

Exakt var klistrar man in Functionkoderna, jag får felmeddelande när jag lägger in dem: 

"Microsoft VBScript compilation error '800a03ea' 

Syntax error 

/forum_topic_test.asp, line 246 

Function ShortenLinkName(sHTML, lFirstLength, lLastLength)"

Permalänk: https://www.webforum.nu/p/2084925

## #7 — voigtann1, 2008-02-25T13:43Z

Starta gärna en ny tråd ;)

Men du försöker vad jag gissar på att du har båda funktionerna i din loop... Lägg dom längst upp innan du gör "Do until rs.EOF" eller i en egen fil och kör en include på den.

Permalänk: https://www.webforum.nu/p/2084927

## #8 — brorsan, 2008-02-25T15:28Z

Fan va grymt, tusen tack! 

Behöver inte starta ny, för verkar fungera finfint nu. 

fick dock ändra 

```
strComText = Replace(strComText,vbcrlf,"<BR>")
```

och lägga till ett mellanslag innan radbrytningen, annars blev det en massa buggar av någon anledning. 

```
strComText = Replace(strComText,vbcrlf," <BR>")
```

Permalänk: https://www.webforum.nu/p/2084948

---

Tråden på webben: https://www.webforum.nu/amne/asp/107107-korta-ner-länknamn
