reguläre Ausdrücke und Variablen
Peter K.
- javascript
hallo,
ich möchte mittels eines regulären ausdrucks einen string in einem markiertem
text ersetzen (geht leider nur mit misie, da ns die funktion falsch implementiert hat.
mein skript sieht folgendermaßen aus:
function ersetzen(text) {
Auswahl=document.selection.createRange().text;
Auswahl = Auswahl.replace(/testtext/g,""); // wie stelle ich es jetzt an, dass hier statt des festen ausdrucks testtext, die beim funktionsaufruf übergebene variable text ersetzt wird?? sie einfach hinzuschreiben hilft nicht, da dann einfach 'text' ersetzt wird und nicht der beim aufruf übermittelte text z.b.: a href=javascript:aersetzen(hallowelt)
if(Auswahl)document.selection.createRange().text=Auswahl;
}
danke für die hilfe
peter
kleiner fehler im gepostetet code!!
function ersetzen(text2) { // hier heisst es natürlich text2 und nicht text2. sonst würde es zu probnlemen mit der variable text eine zeile drunter kommen
Auswahl=document.selection.createRange().text;
Auswahl = Auswahl.replace(/testtext/g,"");
if(Auswahl)document.selection.createRange().text=Auswahl;
}
Hi!
ich möchte mittels eines regulären ausdrucks einen string in einem markiertem
text ersetzen (geht leider nur mit misie, da ns die funktion falsch implementiert hat.
Leider weiss ich nicht welche Funktion Du meinst, die der Netscape falsch implementiert haben soll. Allgemein laesst sich sagen, dass JS immer noch von Netscape vorgegeben wird, weshalb wohl eher andere Browser zu Fehlern neigen.
function ersetzen(text) {
Auswahl=document.selection.createRange().text;
Auswahl = Auswahl.replace(/testtext/g,""); // wie stelle ich es jetzt an,
dass hier statt des festen ausdrucks testtext, die beim funktionsaufruf übergebene variable text ersetzt wird??
Einen dynamischen RegExp kannst Du mit
new Regexp("pattern" [, "flags"])
erstellen, in Deinem Beispiel also einfach
Auswahl = Auswahl.replace(new Regexp(text, "g") ,"");
Den Kontext hab ich mir jetzt mal nicht angeschaut, weiss also nicht, ob's da auch noch was zu deichseln gaebe.
Literatur: http://developer.netscape.com/docs/manuals/js/client/jsref/regexp.htm, http://developer.netscape.com/docs/manuals/js/client/jsguide/regexp.htm
Und dann:
function ersetzen(text2) { // hier heisst es natürlich text2 und nicht text2. sonst würde es zu probnlemen mit der variable text eine zeile drunter kommen
Auswahl=document.selection.createRange().text;
Auf der naechsten Zeile gibt es keine Variable namens text. Allenfalls ist da eine Eigenschaft text von dem von document.selection.createRange() zurueckgegebenen Objekt, aber die hat nun wirklich nichts mit dem Parameter der Funktion zu tun; insbesondere gibt es auch keinen Grund, warum die kollidieren sollten.
So long
Hallo,
danke für die Hilfe.
ich möchte mittels eines regulären ausdrucks einen string in einem markiertem
text ersetzen (geht leider nur mit misie, da ns die funktion falsch implementiert hat.
Leider weiss ich nicht welche Funktion Du meinst, die der Netscape falsch implementiert haben soll. Allgemein laesst sich sagen, dass JS immer noch von Netscape vorgegeben wird, weshalb wohl eher andere Browser zu Fehlern neigen.
das Problem bei Netscape ist, dass man dort keinen Text erfassen kann, der in einem Formfeld markiert wurde.
function ersetzen(text) {
Auswahl=document.selection.createRange().text;
Auswahl = Auswahl.replace(/testtext/g,""); // wie stelle ich es jetzt an,
dass hier statt des festen ausdrucks testtext, die beim funktionsaufruf übergebene variable text ersetzt wird??
Hi!
das Problem bei Netscape ist, dass man dort keinen Text erfassen kann, der in einem Formfeld markiert wurde.
Das stimmt (meines Wissens), jedoch sprachst Du von irgendeiner Funktion, die der Netscape falsch implementiert haette.
Lies bei Gelegenheit uebrigens mal http://www.afaik.de/usenet/faq/zitieren/zitieren-2.php3
So long