login  Naam:   Wachtwoord: 
Registreer je!
 Forum

geavanceerd Regexp

Offline BramBo - 29/12/2007 14:46 (laatste wijziging 29/12/2007 14:47)
Avatar van BramBoJS gevorderde Ik ben bezig met een simpele WYSIWYG-editor no problem, echter loop ik nu vast op een vreemd probleem.

ik begin met de input die ik krijg:
  1. asdasd<span style="text-decoration: underline;"><span style="font-style: italic;"><span style="font-weight: bold;">asdasdasd</span></span><span style="font-weight: bold;">asdasd</span></span><span style="font-weight: bold;">asdasd</span>asdasd


de <span.. style..> vervang ik met corresponderende html tags (b,u,i) wanneer ik nu dmv iteraties de closing tags ga schrijven met het onder vermelde stukje regexp in regexp buddy ga het allemaal goed.
Maar, dit is het probleem waar ik tegen aan loop, als ik het in php laat doen dmv n loop krijg ik n andere output:

Regexp(1regel is 1 iteratie):
  1. asdasd<u><i><b>asdasdasd</span></span><b>asdasd</span></span><b>asdasd</span>asdasd
  2. asdasd<u><i><b>asdasdasd</b></span><b>asdasd</b></span><b>asdasd</b>asdasd
  3. asdasd<u><i><b>asdasdasd</b></i><b>asdasd</b></u><b>asdasd</b>asdasd


php final output:
  1. asdasd<u><i><b>asdasdasd</u></i><b>asdasd</b></span><b>asdasd</b>asdasd


Zowel PHP als RegExp maken gebruik van PCRE als regexp processor.

Regexp:
  1. <([uib])>(?>(?![^>]*<(\w+).*?>.+?(?!</\2>))|(?=[^>]*<(\w+).*?>.+?(?=</\3>)))(.+?)(</span>)


2 antwoorden

Gesponsorde links
Offline Grayen - 29/12/2007 20:31
Avatar van Grayen PHP ver gevorderde Is het niet handiger om dit door je wysiwyg editor te laten doen? (als je teminste javascript gebruikt voor je editor)

Dit javascript fragment zorgt ervoor dat de editor niet meer gebruik zal maken van <span style"..."> maar van bijv. <b> en <u>

  1. var useCss = false;
  2. try {this.theDocument.execCommand('usecss', false, !useCss);} catch(e) {}
  3. try {this.theDocument.execCommand('stylewithcss', false, useCss);} catch(e) {}


Ik hoop dat dat is wat je zoekt.
Offline BramBo - 30/12/2007 15:59
Avatar van BramBo JS gevorderde hah! Dat had je me eerder mogen vertellen Ik loop nog tegen wat foutjes aan met safari maar dat gaat wel lukken.

Bedankt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s