Hallo Gonza.
ich habe ein wenig Probleme, einen regulären Ausdruck zu finden. Er muss aus einer Zeichenfolge alles entfernen, was innerhalb von <a> </a> steht.
Na dann schauen wir einmal.
Das war mein Ansatz, aber er klappt nicht. Ich kann nicht gut mit den Dingern. ;)
/(\^<a.+)(\+.a>)/;
Wir haben hier:
( : öffnende Kapselung
^ : ein maskiertes „^“
<a : den String „<a“
.+ : mindestens eines oder beliebig viele Zeichen
) : schließende Kapselung
( : öffnende Kapselung
+ : ein maskiertes „+“
. : ein beliebiges Zeichen
a> : der String „a>“
) : schließende Kapselung
Warum meinst du „^“ und „+“ maskieren zu müssen?
Wir haben also den String „<a></a>“, wobei im öffnenden Tag noch Attribute enthalten sein können. Also müssen wir im Grunde nur die unter Umständen vorhandenen Attribute übernehmen, der Rest bleibt gleich.
Wir nehmen also:
<a : den String „<a“, um den Anfangstag erkennen zu können
( : öffnende Kapselung; wir brauchen nur die Attribute
.* : keines oder beliebig viele Zeichen; Attribute müssen nicht vorhanden sein
> : das schließende „>“ vom Anfangstag
.+ : eines oder beliebig viele Zeichen; wenn sowieso nichts zwischen den Tags steht, können wir uns hiermit die Arbeit sparen
< : das öffnende „<“ vom Endtag
/ : der maskierte Slash
a> : der String „a>“ welcher den Endtag abschließt
i : der Modifier i, um sowohl Groß, als auch Kleinbuchstaben zu erkennen
Wir erhalten also:
/<a(.*)>.+<\/a>/i
Und nun noch ein kleiner Test:
var regex = /<a(.*)>.+<\/a>/i;
var string = '<A href="Foo" title="test">Bar</a>';
var result = regex.exec(string);
alert('<a' + result[1] + '><\/a>');
Lerne die Regulären Ausdrücke sicher anzuwenden, damit hast du ein mächtiges Werkzeug bei der Hand.
Einen schönen Samstag noch.
Gruß, Ashura