Toon posts:

[js] Content manager: link verwijderen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goedenavond iedereen,

Ik ben bezig met een Content Management System (zoals veel andere mensen :9) en nu zit ik met een probleem. Ik heb een iframe waarin de gebruiker vanalles kan bewerken. Zelf een schermpje ontworpen om links te maken naar andere pagina's in de database, maar nu wil ik de gebruiker de optie geven om een link (of meerdere links) met één knop te verwijderen. Met andere woorden, ik wil dit:
code:
1
<a href="anderepagina.php" target=_self>Dit is een link!</a>

vervangen voor dit:
code:
1
Dit is een link!


En dat moet het liefst met javascript, ik heb alleen geen flauw idee hoe ik dit moet doen. Ik heb met google (en hier) gezocht op "link verwijderen javascript" (en in het Engels uiteraard (8>) maar niet gevonden wat ik zocht.

Ik ben er van overtuigd dat jullie mij best wel eens een leuke hint kunnen geven :9~

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
Lijkt me een klusje voor regular expressions? :)

Verwijderd

Topicstarter
Hmmm... Niet mijn sterkste punt. Ik heb ergens een papiertje opgedoken met daarop een leuke (maar heel erg vage) tutorial. BTW: hoe werken regexp in javascript?
Misschien een extra hint erbij?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

iets als:
JavaScript:
1
text = text.replace(/<\/?a( .*?>|>)/g, '');

[ Voor 19% gewijzigd door crisp op 28-05-2003 19:37 ]

Intentionally left blank


Verwijderd

Topicstarter
Whoh... Daar was ik dus echt gewoon niet opgekomen. Kun je dat misschien wat verder uitleggen?

Edit: Ik heb het geprobeerd, maar het werkt niet echt...

[ Voor 25% gewijzigd door Verwijderd op 28-05-2003 19:55 ]


Verwijderd

Topicstarter
Ik heb nog eens wat gesurft, en wat zitten bedenken. En met hulp van crips kwam dit uit mijn brein rollen:
code:
1
text = text.replace(/<\a(.)*>/g, '');

om iets als
code:
1
<a href="blaat">test</a>

te veranderen in
code:
1
test</a>

Er is één klein probleempje: het werkt niet :( Wat doe ik nu verkeerd?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

In jouw probeersel zie je het fenomeen wat ook wel greediness genoemd wordt. De "." matched alles tot het met het > teken van </a> i.p.v. de <a href>.
Bovendien zal je regexp bijvoorbeeld ook matchen op <abbr> en dat lijkt me ook niet de bedoeling, na de "a" moet een space komen.

Het switchen tussen greedy en lazy gedrag van een quantifier doe je met een vraagteken achter de quantifier (*?), dus:

JavaScript:
1
text = text.replace(/<a\s.*?>/g, '');


Als je ook meteen de sluittag wil verwijderen dan zou je dat bijv. kunnen doen met

JavaScript:
1
text = text.replace(/<a\s.*?>|<\/a>/g, '');

[ Voor 10% gewijzigd door Annie op 28-05-2003 21:33 ]

Today's subliminal thought is:


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

Verwijderd schreef op 28 May 2003 @ 19:41:
Whoh... Daar was ik dus echt gewoon niet opgekomen. Kun je dat misschien wat verder uitleggen?

Edit: Ik heb het geprobeerd, maar het werkt niet echt...
mogelijk staat er <A> in je html (hoodletter dus); zo zou hij case-insensitive moeten zijn:
JavaScript:
1
text = text.replace(/<\/?a( .*?>|>)/gi, '');

die van Annie zou met een extra i-modifier dan ook moeten werken.
Zo is die van mij nog mooier naar mijn menig:
JavaScript:
1
text = text.replace(/<\/?a( .*?)?>/gi, '');

[ Voor 6% gewijzigd door crisp op 28-05-2003 23:21 ]

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

execCommand("UnLink") :?

Als je dan toch met een editable I-Frame bezig bent, gebruik dan ook de commando's daarvoor :)

Zie hier voor een complete lijst: http://msdn.microsoft.com.../reference/commandids.asp

Verwijderd

Topicstarter
Hmmm... Shame on me! Thnx voor de hulp jongens, ik ben in ieder geval een stuk wijzer geworden wat betreft regexps!
Pagina: 1