Felix Riesterer: Variablen in RegExps

Beitrag lesen

Lieber werbeklaus,

?typ1=0&typ2=0&.......

die Zahl nach "typ1" inkrementieren.
Was kann ich tun?

mit window.location.search könntest Du vielleicht auf die Übergabe des Wertes "type" verzichten...

Aber Du hast jetzt einen String (eben obiges location.search, nehme ich an?) mit Variablenzuweisungen (eben typ1=0&typ2=0 usw.). Es gibt da eine sehr nützliche Funktion: eval(). Diese Funktion braucht aber einen syntaktisch einwandfreien String, um ihn als Javascript-Anweisung interpretieren und ausführen zu können. Also müssen die "&"-Zeichen durch ";" ersetzt werden, das "?" am Anfang aber ganz weg.

Danach werden die Variablenzuweisungen ausführt, sodass Dir danach typ1 und typ2 (und alle weiteren aus dem Searchstring) mit Inhalten befüllt zur Verfügung stehen.

Du solltest aber darauf achten, dass Du die möglichen Variablen vorher als lokale Variablen (mit var typ1, typ2, ...;) initialisierst, damit sie keine möglicherweise vorhandenen globalen Variablen überschreiben!

Ein Beispiel (als Teil einer HTML-Datei):
<script type="text/javascript">

var type, typ1, typ2, test1; // diese Variablennamen können im Searchstring vorkommen  
var i, variablen_array;  
type = "?typ1=1&typ2=4&test1=9";  // hier definiere ich mal eben type in Deiner Art  
variablen_array = type.substring(1, type.length).split("&");alert(type.substring(1, type.length)); // hier wird type als Array zerlegt  
for(i = 0; i < variablen_array.length; i++) // und zeilenweise...  
   {  
   eval(variablen_array[i]);                // ... interpretiert  
   }  
alert("Typ1: " + typ1 + "; Typ2: " + typ2 + "; Test1: " + test1); // probeweise Ausgabe der Variablen

</script>

Liebe Grüße aus Ellwangen,

Felix Riesterer.