Reguläre Ausdrücke
Martin Hein
- javascript
Hallo Forum,
ich raff das immernoch nicht mit den regulären Ausdrücken.
Kann mir da mal jemand helfen ?
string = '<p><a href="http://dcbkk16.home.net/_admin/#Beitrag zur freiwilligen Krankenversicherung" class="interner_link" title="Beitrag zur freiwilligen Krankenversicherung"><p><a href="http://dcbkk16.home.net/_admin/#Beitrag zur freiwilligen Krankenversicherung" class="interner_link" title="Beitrag zur freiwilligen Krankenversicherung">';
Ich möchte alle Links mit "#" dahingehend verändern,
dass sie mit "#" beginnen.
Ich suche also nach allen 'href="<irgendwas>#' und möchte sie ersetzen durch 'href="#'
nach meine Verständnis müsste das so lauten:
string.replace(/href=".+#/g, "href="#");
aber das Ergebnis ist:
----------------------
string = '<p><a href="#Beitrag zur freiwilligen Krankenversicherung" class="interner_link" title="Beitrag zur freiwilligen Krankenversicherung"><p>';
... es wird also die Hälfte verschluuckt, was ich mir nicht erklären
kann.
Kann mir das jemand erklären ?
beste gruesse,
martin
gudn tach!
nach meine Verständnis müsste das so lauten:
string.replace(/href=".+#/g, "href="#");
aber [...] es wird [...] die Hälfte verschluuckt, was ich mir nicht erklären kann.
Kann mir das jemand erklären ?
selfhtml. ;-)
prost
seth
Hallo Martin.
string = '<p><a href="http://dcbkk16.home.net/_admin/#Beitrag zur freiwilligen Krankenversicherung" class="interner_link" title="Beitrag zur freiwilligen Krankenversicherung"><p><a href="http://dcbkk16.home.net/_admin/#Beitrag zur freiwilligen Krankenversicherung" class="interner_link" title="Beitrag zur freiwilligen Krankenversicherung">';
Ich möchte alle Links mit "#" dahingehend verändern,
dass sie mit "#" beginnen.
string = string.replace('http://dcbkk16.home.net/_admin/', '');
Reguläre Ausdrücke sind hier überflüssig.
Ich suche also nach allen 'href="<irgendwas>#' und möchte sie ersetzen durch 'href="#'
nach meine Verständnis müsste das so lauten:
string.replace(/href=\".+#/g, "href=\"#");
Also die Zeichenkette „href="“, dann irgendetwas so viel wie möglich und irgendwann einmal ein „#“.
aber das Ergebnis ist:
string = '<p><a href="#Beitrag zur freiwilligen Krankenversicherung" class="interner_link" title="Beitrag zur freiwilligen Krankenversicherung"><p>';
Stimmt exakt.
... es wird also die Hälfte verschluuckt, was ich mir nicht erklären
kann.Kann mir das jemand erklären ?
Siehe oben. Dein Muster macht nur, was es soll. Es ist momentan einfach noch zu gierig, was du abstellen kannst:
string.replace(/href=\"([^#]+)#/g, "href=\"#");
Hier beschränkst du also die Menge der Zeichen vor dem „#“ auf alles AUSSER diesem Zeichen, weshalb hier schrittweise ausgeführt wird.
Einen schönen Mittwoch noch.
Gruß, Mathias
Hallo Forum,
aha, "gierig" ist das Stichwort.
Danke für den Link, Danke für die Lösung.
beste gruesse,
martin