RegExp: mit $1 und global-flag ersetzen
LanX
- javascript
Hi
Ich moechte ein gefundenes Muster im Ersetzungsstring wiederverwenden
allerdings gleich mit der Option global /g
Perlbeispiel:
$Text = "<i> <a> <o>";
$Text =~ s/<(.)>/[$1]/g;
print "$Text\n";
liefert "[i] [a] [o]"
Javascript allerdings:
Text="<i> <a> <o>" ;
Text=Text.replace( /<(.)>/g , "["+ RegExp.$1 +"]" );
alert(Text)
liefert total chaotische Ergebnisse.
LaeBt man das g weg erhaelt man wenigstens "[i] <a> <o>"
Kein mir jemand nen eleganten Weg nennen wie ich mein Ziel mit "global" erreichen kann
d.h. ohne ne Schleife ueber Einzelersetzungen bauen zu muessen?
Danke
Rolf
gruss Rolf,
kann mir jemand 'nen eleganten Weg nennen, wie ich mein Ziel
mit "global" erreichen kann, d.h. ohne 'ne Schleife ueber
Einzelersetzungen bauen zu muessen?
»»
Danke
Rolf
tut mir leid - soweit ich weiss, kommst Du bei der
von Dir beschriebenen problemstellung nicht um ein
solches konstrukt herum-(ich lass' mich auch gerne
eines besseren belehren)
var text = "<i> <a> <o>";
var regExpression = /<([^>])>/;
while (regExpression.test(text)) {
regExpression.exec(text);
text = text.replace(regExpression,("["+RegExp.$1+"]"));
// alert(text);
}
alert(text);
by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
Hi Peter
tut mir leid - soweit ich weiss, kommst Du bei der
von Dir beschriebenen problemstellung nicht um ein
solches konstrukt herum-(ich lass' mich auch gerne
eines besseren belehren)
Schade! Da zeigt sich wieder was perl eigentlich taugt ...
var regExpression = /<([^>])>/;
Aha [^>]* ein Non-Greedy-Konstrukt, das fuehrt mich auch zu einer anderen Frage
wie gelingt das bei HTML-Kommentaren, dh wenn's mehrere AbschluBzeichen
gibt, folgendes waere naemlich leider humbug
/<!--([^-->]*)-->/
Kennst du da eine Vorgehensweise?
Tschau
Rolf
PS: Ja ich bastel an 'nen HTML-Parser! :)
hallo again,
Aha [^>]* ein Non-Greedy-Konstrukt, das fuehrt mich auch zu einer anderen Frage
wie gelingt das bei HTML-Kommentaren, dh wenn's mehrere AbschluBzeichen
gibt, folgendes waere naemlich leider humbug/<!--([^-->]*)-->/
Kennst du da eine Vorgehensweise?
eine loesung ueber js-RegExp faellt mir da nicht ein -
konstruier' Dir fuer diesen speziellen fall doch was
mit "indexOf";
PS: Ja ich bastel an 'nen HTML-Parser! :)
du bist krank - gute genesung ;-)
ich wuerde gerne den code sehen, wenn Du damit fertig
bist - wird das ein validierender parser? - einer fuer
xhtml? - oder sogar fuer "html4/loose.dtd"?
by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)
hi
PS: Ja ich bastel an 'nen HTML-Parser! :)
du bist krank - gute genesung ;-)
isch weiß
ich wuerde gerne den code sehen, wenn Du damit fertig
bist - wird das ein validierender parser? - einer fuer
xhtml? - oder sogar fuer "html4/loose.dtd"?
Validierend nicht wirklich, nicht mehr als Try ...Catch! Der soll auch nur meinen eigenen Code parsen. Und da darf kein ' vorkommen.
Wenn's läuft mail ich dir.
tschüß
rolf