reguläre Ausdrücke
Alexander Kiel
- javascript
Hi Forum,
ich hab seit langen mal wieder ne Frage :(
Ich will mittels regulärer Ausdrücke eine Teilzeichenfolge in einem String durch eine andere erstetzen. Normal auch kein Problem:
alt = "a";
neu = alt.replace(/a/,"b");
neu ist dann "b"
Ok so weit so gut. Nun will ich aber folgendes machen:
suchvar = "a";
alt = "a";
neu = alt.replace(/suchvar/,"b");
Was macht JS, es sucht nach "suchvar" und nicht wie gewollt nach "a" was ja klahr ist.
Ich will aber, dass es nach einer Variablen sucht und nicht nach einem Literal.
Wie mache ich das???
ALEX
Hallo Alex,
suchvar = "a";
alt = "a";
neu = alt.replace(/suchvar/,"b");
ohne zusätzlich Angaben macht es auch der Aufruf
neu=alt.replace(suchvar,"b");
da dir das aber sicher nicht reichen wird und du mehr als ein Zeichen ersetzen willst, mußt du es anders machen.
Hier ein Beispielscript:
<script>
f="a";
k=eval("/"+f+"/g");
alt="caca";
alt=alt.replace(k,"b");
alert(alt)
</script>
Erklären brauche ich dir es sicher nicht. :-)
Viele Grüße
Antje
Huhu Antje!
Kaum zurueck, schon wieder muss er meckern ;-)
k=eval("/"+f+"/g");
Warum nicht einfach
k = /f/g;
? Das sollte gleichbedeutend mit
k = new RegExp("f", "g");
sein. Und auch Dein eval macht nichts anderes.
More about this: http://developer.netscape.com/docs/manuals/js/client/jsref/regexp.htm.
Bis dann, Roland
Hallo Roland,
Kaum zurueck, schon wieder muss er meckern ;-)
Schön das du wieder da bist. :-)
Warum nicht einfach
k = /f/g;
? Das sollte gleichbedeutend mit
k = new RegExp("f", "g");
sein.
weil ich es nicht wußte :-), soviel mache ich mit regulären Ausdrücken nun auch wieder nicht.
Danke für den Hinweis.
Viele Grüße
Antje