---
title: "Problem med att skapa länk med regexp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/130714-problem-med-att-skapa-länk-med-regexp/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "joel_joel88"
published: "2005-06-28T20:01:04.000Z"
updated: "2005-07-01T11:45:35.000Z"
replies: 38
views: 892
page: 2
pages: 2
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/130714-problem-med-att-skapa-länk-med-regexp"
---

# Problem med att skapa länk med regexp

_Sida 2 av 2._

## #21 — joel_joel88, 2005-06-29T23:06Z

Man måste väl ha något som känner av att den inte skapa ta med radbrytningar efter en adress.

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

## #22 — joel_joel88, 2005-06-29T23:12Z

Blir fort farande samma fel :(

Jag tror att felet ligger i regexp koden. Man måste nog ha något som känner av att ej ta med radbrytningar.

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

## #23 — SannyW, 2005-06-29T23:24Z

Ok, vi går tillbaka lite. Något jag inte riktigt är med på, varför slå radbrytning i ett inlägg om man inte önskar ha ett? Och skriva länkar i rad? skriver man inte automatiskt med mellanrum. <https://www.testar.nu> <https://www.testar.nu> INTE gör man väl <https://www.testar.nuwww.testar.nu>

Eller har jag missförstått?

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

## #24 — SannyW, 2005-06-30T00:56Z

Har gjort lite förändringar och satt ihop en samlad funktion med lite alternativ. Om det är någon som ser något/några fel så skrik till.

/r
Tog bort och postade nytt inlägg här under med en fil istället.

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

## #25 — SannyW, 2005-06-30T01:06Z

Bifogar filen här istället.

Bilagor:

- [funktion_link.txt](https://www.webforum.nu/a/6844.txt)

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

## #26 — joel_joel88, 2005-06-30T07:45Z

Klart att man vill ha radbrytningar i ett inlägg. 

Typ som nu när jag skriver, då är det två rader längre ner. När detta skrivs ut så blir det \<br\> mellanradbrytningarna, det fattar du väl :)

Det är ju inget i regexp koden som säger att den inte ska ta med en länk som är radbruten, och inte heller ta med html så som \<br\>.

finns det inte ett tecken som heter \\b som bara tar med ordbunden text?

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

## #27 — pettsson, 2005-06-30T08:55Z

\\b bryter efter "non-word" tecken, alltså allt som inte är bokstäver eller siffror. Därför kommer den skapa problem med / i adresser.
Men varför vill man inte avbryta länken innan ett radbryt/ha ett radbryt i en länk? :q 
Nu har jag inte läst igenom Sannys kod helt, men jag fick den inte att funka. Nedanstående borde dock matcha alla giltiga addresser.

```
(http:\/\/)?(www\.)?[a-zA-Z]\w*\.[a-z]{2,4}(\/\w+)*\/?
```

Ska du sedan ha motsvarande taggar som används här för att avgränsa länkar får du slänga in \\\[url\\\] i början och \[^\[\]\\\[\\/url\\\] i slutet av ovanstående.

/r Borde inte denna tråd vara i det nya regexp forumet?

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

## #28 — SannyW, 2005-06-30T09:10Z

Vad fick pettsson inte att fungera? Koden i txt filen som du kunde ladda ner?

Berätta gärna vad som blev fel?

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

## #29 — joel_joel88, 2005-06-30T10:08Z

Yttligare några problem.

Problem 1.
om man ha t.ex mailto:joel@joel.com  så skrivs mailto: också ut i länken.

Problem 2.
om jag har t.ex
\<img src="http://www.bild.com/en_bild.jpg"\>
Så blir <http://www.bild.com/en_bild.jpg> en länk.

Går det fixa det så att det inte blir en länk i en imgtagg?

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

## #30 — SannyW, 2005-06-30T10:38Z

Om vi tar problem 2 så för att släppa igenom imgtagg så måste vi släppa igenom html taggar och då kan vad som helst göras vid postning.

Jag ser inte riktigt ditt användningsområde, att släppa html-taggar i ett forum. Det är inte att rekommendera. Så din lösning borde gå mot webforums och då tvinga postaren att bädda in sin önskning med typ \[ img\]http://www.bild.com/en_bild.jpg

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

## #31 — joel_joel88, 2005-06-30T10:44Z

Ok. För att inte släppa igenom html taggar så använder man väl strtxt = Server.HTMLEncode(strtxt).

Fast då fungerar ju inte ens \<br\> som man måste ha när man formaterar text, och kanske fet text.

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

## #32 — SannyW, 2005-06-30T10:52Z

Exakt, det är därför man ändra \<br\> till vbCrLf.

Man skulle väl kunna göra samma sak med img-tagg, men frågan är om man inte krånglar till det för sig.

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

## #33 — joel_joel88, 2005-06-30T10:56Z

Jag gör om eventuella adress till länkar när jag ska skriva ut inläggen i forumet. Är det bättre än att göra om till länkar när man sparar texten i databasen när man gör ett nytt inlägg?

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

## #34 — joel_joel88, 2005-06-30T11:06Z

SannyW kan du och har lust att hjälpa mig med img koden?  :h

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

## #35 — pettsson, 2005-06-30T11:23Z

> **SannyW skrev:**
>
> Vad fick pettsson inte att fungera? Koden i txt filen som du kunde ladda ner?
> 
> Berätta gärna vad som blev fel?

Jag fick ingen matchning mot adresser med den pattern du hade i din kod.

Joel: Man behöver inte släppa igenom \<br\>, \<b\> osv, gör istället som Sanny säger, definera egna element liksom här på wF. Du skriver väl ändå inte \<br\> i dina inlägg här?

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

## #36 — joel_joel88, 2005-06-30T11:50Z

Så här har jag gjort än så länge.

Där man skapar inlägg

```
strTxt = request("inlagg")
strtxt = Server.HTMLEncode(strtxt) ' För att ta borte eventuella html taggar
strTxt = replace(strTxt, vbcrlf, "<br>")
```

Där man läser

```
strTxt = rs("inlagg")
strTxt = replace(strTxt, "[fet]", "<b>")
strTxt = Replace(strTxt, "[/fet]", "</b>")
strTxt = replace(strTxt, "[kursiv]", "<i>")
strTxt = Replace(strTxt, "[/kursiv]", "</i>")
strtTxt = Replace(strTxt, "<br>", " <br>") ' Fixar så att det blir ett mellanrum mellan texten och <br>

set objRegExp = new RegExp	
objRegExp.Global = true
objRegExp.IgnoreCase = true

objRegExp.Pattern = "([url]www.[/url][^ ]*[\w])|((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)|\[url\](.*?)\[\/url\]|\[url=(.*?)\](.*?)\[\/url\]|\[mail=(.*?)\](.*?)\[\/mail\]"
strTxt = objRegExp.Replace(strTxt,"<a href='$1$2$3$4$6' target='_blank'>$1$2$3$5$7</a>")

strTxt = Replace(strTxt,"'www","'http://www")
strTxt = Replace(strTxt,"''http://www","''www")

printRows = Split(strTxt, "<br>")

For i = 0 To Ubound(printRows)
   Response.Write printRows(i)
   Response.Write "<br>"
Next
```

Är det "rätt" gjort. Jag får göra ett mellanrum innan \<br\> annars om man har flera länkar så säts dom ihop.

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

## #37 — joel_joel88, 2005-06-30T12:04Z

F\*n jag blir tokig. Det fungerar aldrig som jag tänkt mig!

Hjälp mig någon. Hur ska jag göra för att få bort all html kod som skrivs in, men ändå så ska Vbcrlf kunna bli \<br\> när inlägget skrivs ut och man ska kunna göra egen forum kod.
T.ex \[fet\]\[/fet\]

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

## #38 — pettsson, 2005-07-01T11:33Z

Lugn i bussen nu...
För att göra forum-taggar anpassar du denna regexp:
\[kod\]
objRegExp.Pattern = "\\\[fet\\\](.\*?)\\\[\\/fet\\\]"
strTxt = objRegExp.Replace(strTxt, "\<b\>$1\</b\>")
\[/kod
Byt bara ut fet mot de taggar du vill ha.

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

## #39 — joel_joel88, 2005-07-01T11:45Z

eller så gör man det med vanlig replace

strtxt = Replace(strTxt, "\[fet\]", "\<b\>")

eller hur?

Fast det var inte det jag frågade om, och det har löst sig så jag behöver ingen hjälp mer :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/130714-problem-med-att-skapa-länk-med-regexp/page2  
Föregående sida: https://www.webforum.nu/amne/asp/130714-problem-med-att-skapa-länk-med-regexp.md
