[ASP] replace [URL= tag naar <a tag

Pagina: 1
Acties:

  • fatbenny
  • Registratie: April 2001
  • Laatst online: 07-03-2023
Ik wil in een Active Server Pages script onderstaande omzetten naar een link. Maar ik krijg het niet voor elkaar, ik gebruik de replace functie en heb op google gezocht, maar ik krijg het niet werkend.

code:
1
2
3
4
5
[url=http://www.tweakers.net]link[/url]

naar

<a href="tweakers.net" target="_blank">link</a>

[ Voor 9% gewijzigd door fatbenny op 24-11-2004 15:28 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19-05 13:45

gorgi_19

Kruimeltjes zijn weer op :9

Zoek eens op regular expressions icm VBScript :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Je begin is goed. De string zal je moeten ontleden. De replace functie leent zich daar prima voor maar hoe dat precies zit zal je toch echt zelf moeten uitzoeken.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 24 november 2004 @ 15:17:
Je begin is goed. De string zal je moeten ontleden. De replace functie leent zich daar prima voor maar hoe dat precies zit zal je toch echt zelf moeten uitzoeken.
Als je dit met een replace gaat oplossen ga je nog een hoop werk krijgen. Je kunt inderdaad beter regular expressions gebruiken.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • fatbenny
  • Registratie: April 2001
  • Laatst online: 07-03-2023
strTekst is een variabele met een tekst en in die tekst staan ook url tags

code:
1
2
3
4
5
6
7
8
9
10
11
12
Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "(.*?)\\[url=([^\]]+)\]([^\]]+)\\[\/url\](.*)"
.IgnoreCase = True
.Global = True
End With

ReplacedString = RegularExpressionObject.Replace(strTekst, "$1<a href=""$2"">$3</a>$4")

Response.Write "Replaced " & strTekst & " with: " & ReplacedString
Set RegularExpressionObject = nothing


Nu werkt het gedeeltelijk, want hij pakt alleen de eerste url tag uit strTekst en vervangt die. Maar wat moet ik doen als er bijvoorbeeld zes url tags in staan?

[ Voor 10% gewijzigd door fatbenny op 24-11-2004 15:27 ]


  • sopsop
  • Registratie: Januari 2002
  • Nu online

sopsop

[v] [;,,;] [v]

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Function DoCode(regstr,regpattern,regreplace)
   dim objRE
   Set objRE = new RegExp
   objRE.Global = True
   objRE.IgnoreCase = True
   objRE.Pattern = regpattern
   docode = objRE.Replace(regstr,regreplace)

   Set objRE = Nothing
End Function

'[url=link][/url]
mParseUBB = DoCode(mParseUBB,"\\[URL=(http[^\]\s]+)\]\n?(.*?)\n?\\[\/URL\]","<a href=""$1"">$2</a>")

Ik doe dat zo...

Nog wat andere tagreplacers voor de volledigheid:
code:
1
2
3
4
5
6
7
8
'[b][/b]
mParseUBB = DoCode(mParseUBB,"\\[b\]\n?(.*?)\n?\\[\/b\]","<b>$1</b>")

'[img=100,100][/img]
mParseUBB = DoCode(mParseUBB,"\\[img=([^\]\s]+),([^\]\s]+)\]\n?(.*?)\n?\\[\/img\]","<a href=""$3"" target=""_blank"">[img]""$3""[/img]</a>")

'[img=100][/img]
mParseUBB = DoCode(mParseUBB,"\\[img=([^\]\s]+)\]\n?(.*?)\n?\\[\/img\]","<a href=""$2"" target=""_blank"">[img]""$2""[/img]</a>")
Hier kun je een heel eind mee uit de voeten als het goed is.

[ Voor 50% gewijzigd door sopsop op 24-11-2004 15:45 ]


Verwijderd

RobIII schreef op woensdag 24 november 2004 @ 15:18:
[...]

Als je dit met een replace gaat oplossen ga je nog een hoop werk krijgen. Je kunt inderdaad beter regular expressions gebruiken.
Ik heb het met de replace functie opgelost maar dit ziet er makkelijker uit. Binnenkort maar eens toepassen

  • fatbenny
  • Registratie: April 2001
  • Laatst online: 07-03-2023
dankje

het werkt en het is geimplementeerd in mijn site :)
Pagina: 1