Forum Doku Wiki Blog

Forumsarchiv 2007, Juli
Reguläre Ausdrücke

archivierte Beiträge lesen

  1. (JAVASCRIPT) Reguläre Ausdrücke von Martin Hein, 11. 07. 2007, 17:02

Reguläre Ausdrücke

Der folgende Beitrag wurde am 11. 07. 2007, 17:02 Uhr von Martin Hein veröffentlicht.

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

Reguläre Ausdrücke

Der folgende Beitrag wurde am 11. 07. 2007, 17:09 Uhr von seth_not@home veröffentlicht.

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

Reguläre Ausdrücke

Der folgende Beitrag wurde am 11. 07. 2007, 17:14 Uhr von Mathias Brodala veröffentlicht.

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

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)

debian/rules

Reguläre Ausdrücke

Der folgende Beitrag wurde am 11. 07. 2007, 17:26 Uhr von Martin Hein veröffentlicht.

Hallo Forum,

aha, "gierig" ist das Stichwort.

Danke für den Link, Danke für die Lösung.

beste gruesse,
martin

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4