---
title: "Byta ut [detta] till en länk"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11772-byta-ut-detta-till-en-länk"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Pace"
published: "2001-09-25T17:01:00.000Z"
updated: "2001-09-25T19:18:00.000Z"
replies: 11
views: 280
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/11772-byta-ut-detta-till-en-länk"
---

# Byta ut [detta] till en länk

## #1 — Pace, 2001-09-25T17:01Z

Hallå!

Jag behöver hjälp med följande, att göra om ett stycke text med \[hakparenteser\] till en länk med samma innehåll, exempel:

```
Hej hopp i [hagen] detta var en fin liten [text] jag skrivit ihop här.
```

Alla ord med \[ och \] ska bli en länk på följande vis:

```
Hej hopp i <A HREF="hagen">hagen</A> detta var en fin liten <A HREF="text">text</A> jag skrivit ihop här.
```

Detta är säkerligen lätt gjort med reg exp, men jag behöver koder för både och!

\[r\] Dessutom så ska server.UrlEncode köras på länken innan den skrivs ut.

\[Redigerat av Pace den 25 sep 2001\]

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

## #2 — Brimba, 2001-09-25T17:21Z

Kan detta kanske fungera?

```
Function urlStrim(cTxt)	
	Dim objRegExp	
	Set objRegExp = New RegExp	
	objRegExp.Pattern = "\[(.*?)\]"	
	objRegExp.IgnoreCase = True	
	objRegExp.Global = True	
	urlStrim = objRegExp.Replace(cTxt,"<a href=$1>$1</a>") 		
	Set objRegExp = Nothing
End Function
```

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

## #3 — Pace, 2001-09-25T17:26Z

Funkar utmärkt, men hur gör man en UrlEncode på själva länken?

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

## #4 — Brimba, 2001-09-25T18:36Z

Jädrigt bra fråga.
Eftersom du vill köra server.urlencode() på $1, men gör du det så ersätts ju $1 också, och därmed försvinner ju den parametern och regexp förstår inte vad det är för något.

Man skulle kanske på något sätt kunna få fram matchningar som bara hittar det inom \<a href="blabla"\>, men det vet jag inte hur man gör.

Troligen kanske det finns något enklare sätt.

För jag antar att du vill göra följande:

hugg = "\<a href=" & server.urlencode("http://blabla") & "\>blabla\</a\>"

och inte

hugg = server.urlencode("\<a href=http://blabla\>blabla\</a\>")

för det är enkelt...

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

## #5 — Brimba, 2001-09-25T19:02Z

Kanske går det inte.

Ett bra sätt är att köra något sådant här..

For each match in matches
str = replace (str, match, server.UrlEncode(match))
Next

Vilket bör fungera fint..

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

## #6 — emission, 2001-09-25T19:03Z

```
Function urlStrim(cTxt) 
Dim objRegExp,strTxt
strTxt=cTxt 
Set objRegExp = New RegExp 
objRegExp.Pattern = "\[(.*?)\]" 
objRegExp.IgnoreCase = True 
objRegExp.Global = True 
for each objMatch in objRegExp.Execute(strTxt)
strTxt = Replace(strTxt,objMatch.Value,"<a href=""" & server.urlencode(objMatch.Submatches(0)) & """>" & objMatch.Submatches(0) & "</a>")
next 
Set objRegExp = Nothing
urlStrim=strTxt
End Function
```

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

## #7 — SPiN, 2001-09-25T19:06Z

emission, han kan han! :o :e

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

## #8 — Brimba, 2001-09-25T19:07Z

han snodde ju min lösning ;)

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

## #9 — Pace, 2001-09-25T19:10Z

Det visste jag väl hela tiden att man kan göra så, skulle bara se i fall ni var med! :p 

Nåja, hur som helst! Tack emssion & Brimba! :)

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

## #10 — SPiN, 2001-09-25T19:10Z

Han är ju så iskall också... Han säger ingenting, bara klistrar in koden! ;)

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

## #11 — Brimba, 2001-09-25T19:15Z

Japp.

submatches... självklart när man ser det, men inte lätt om man inte sett det tidigare :)

Men nu när man läser VBscript dokumentationen lite tydligare hittar man självklart detta:

> Matches pattern and captures the match. The captured match can be retrieved from the resulting Matches collection, using the SubMatches collection in VBScript or the $0…$9 properties in JScript.  To match parentheses characters ( ), use '\\(' or '\\)'.

Roligt att veta :)

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

## #12 — Pace, 2001-09-25T19:18Z

Alla texter man läser är så självklara när man väl kan dem, men när man läser dem som nybörjare så fattar man ingenting! (rent generellt alltså) :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11772-byta-ut-detta-till-en-länk
