Tags per regulärem Ausdruck: Problem!
J.Hahn
- javascript
Hi allerseits,
eigentlich sollte das Finden und Entfernen von Tags ja ne Standardaufgabe sein, allerdings will mein regulärer Ausdruck in Javascript nicht das finden, was ich möchte ;-) :
var regularExp = /<([a-z1-6]+)></($1)>/gi;
content = content.replace(regularExp, '');
... soll alle Vorkommen von leeren Tags (z.B. <u></u>, <strong></strong> oder <h1></h1>) aus dem String "content" entfernen. Mit diesem regulären Ausdruck wird allerdings die gesuchte Zeichenfolge nicht gefunden.
Dieser hier:
var regularExp = /<([a-z1-6]+)></([a-z1-6]+)>/gi;
finden zwar die gesuchte Zeichenfolge, allerdings auch sowas wie "<u></h1>". Die Rückbeziehung auf den ersten Suchtreffer ("$1") scheint nicht zu funktionieren. Weiß hier vielleicht jemand Rat?
Vielen Dank und Grüße, Josef
Hallo J.Hahn!
var regularExp = /<([a-z1-6]+)></($1)>/gi;
content = content.replace(regularExp, '');
Aus http://de.selfhtml.org/javascript/objekte/regexp.htm#dollar_1_9:
$[1..9]
Speichert die umklammerten Bestandteile eines regulären Ausdrucks. Diese lassen sich benutzen, um bestimmte Teile eines Strings zu _extrahieren_ oder _unter Zuhilfenahme der Funktion replace() zu ersetzen_.
So wie Du es haben willst, geht es nicht. Denn Du hast $1 im Suchausdruck und nicht als/im Ersetzungsmuster. Was Du brauchst, ist eine Backreferenz:
var content = "<u></u> und noch was <h1></h1> und <u></h1>";
var regularExp = /<([a-z1-6]+)></\1>/gi;
content = content.replace(regularExp, '');
alert (content);
Ausgabe:
und noch was und <u></h1>
Viele Grüße aus Frankfurt/Main,
Patrick
