[ASP/JS] Regex met link probs

Pagina: 1
Acties:

  • Skaah
  • Registratie: Juni 2001
  • Niet online
ASP.NET Visual Basic:
1
strObj = strObj.replace(/(\w{3,4}:\/\/[A-z\.]+\.\w+[^\r\f\t\v\]]+)/g,"[url=$1]$1[\/url]")


maakt van iedere http://blah.ext/blaah een keurige UBB [url=http://...]http://..[/url] tag.

ASP.NET Visual Basic:
1
strObj = strObj.replace(/\\[(url=)(http.*)](.*)(\\[\/url])/g,"<a href='$2'>$3</a>")


maakt van iedere [url=blaah]link[/url] een keurige HTML link. Dat werkt dus.

Mijn probleem:

hoe voorkom ik dat deze twee met elkaar interferen, dus dat de urls in de ubb [url=..]xxx[/url] tags weer worden geparsed zodat je iets als
code:
1
[url=[url=http://www.link.nl]http://www.link.nl[/url]]linkje[/url]

Krijgt?

Het probleem zit 'm erin dat ik niet kan checken wat het teken voor de url is. Alleen als het geen '=' of '"' is mag het door de eerste code komen...

Het mooiste zou zijn als een foute link helemaal niet door de eerste parser komt, aleen hoe fix je dat?

edit:

Hmmm ik krijg alleen maar puin-zooi met de ubb-parsers van parse...

[ Voor 18% gewijzigd door Skaah op 11-05-2003 19:26 ]


  • Skaah
  • Registratie: Juni 2001
  • Niet online
^^^

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

jscript regexpen kennen inderdaad geen lookbehind references. Je zou kunnen stellen dat er voor een 'losse' link een whitespace karakter moet staan, dus in ieder geval geen non-whitespace character; iets als ([^\S]) of ([^ \f\n\r\t\v]) dus.
Trouwens, waarom zet je je eerste regexp ook niet meteen om naar HTML, maar eerst naar UBB; een beetje onpraktisch lijkt me. Verder wordt wrtp:// ook gematched, maar https:// weer juist niet.
Last, but not least: de regexp in je ondertitel klopt niet; je stopt een reference in een character class ;)

[ Voor 21% gewijzigd door crisp op 11-05-2003 22:16 ]

Intentionally left blank