Replace einer Variablen
Alexej Nagel
- javascript
Hallo allerseits!
Ich habe gestern festgestellt, dass bei der Replace-Funktion von JavaScript keine Variable akzeptiert wird und zwar auf der Stelle, wo der gesuchte String geschrieben wird (Var1):
Inhalt = Inhalt.replace(/Var1/g, "Var2");
Teilweise kann man dieses Problem umgehen, wenn man so schreibt:
Inhalt = Inhalt.replace(Var1, Var2);
Aber in diesem Fall hat man ja keine Moeglichkeit den rergulaeren Ausdrueck global zu verwenden. Und das brauche ich gerade (Nehmen wir an, dass dieser regulaere Ausdrueck 1000-mal vorkommt).
Ich habe auch eine Zwischenloesung gefunden - mit einer Schleife, die abgebrochen wird, wenn mein rergulaerer Ausdrueck nicht mehr vorkommt. Sonst wird der String immer und wieder durchsucht - es hat ja auch den risigen Nachteil: bei grossen Texten dauert die Umwandlung viel zu lang.
Weisst jemand, ob es moeglich ist in JS die Variablen so zu definieren, dass die auch als solche erkannt werden (nicht als Text)? Vielleicht gibt's sowas in JS-Docus, die ich nicht habe?
Vielen Dank im voraus,
Alexej
Ich habe auch eine Zwischenloesung gefunden - mit einer Schleife, die abgebrochen wird, wenn mein rergulaerer Ausdrueck nicht mehr vorkommt. Sonst wird der String immer und wieder durchsucht - es hat ja auch den risigen Nachteil: bei grossen Texten dauert die Umwandlung viel zu lang.
Wenn Du in dieser Richtung weiter arbeiten willst, dann zerlege den zu verarbeitenden Text bei jedem Treffer in den bereits durchsuchten und den noch zu durchsuchenden Text, hänge den bereits durchsuchten an eine entsprechende Variable an und durchsuche nur noch den Rest.
Damit wird die Laufzeit nur noch linear zur Textlänge - bisher ist sie quadratisch zu dieser.