werbeklaus,
Meine Reaktion nach dem ersten Lesen deines Postings: He?
Meine Reaktion nach dem zweiten Lesen deines Postings: He?? …
Würdest du deim Problem bitte so schildern, dass man es versteht?
Ich sag ja auch nicht
s = "?typ1=0&typ2=0";
if (m = s.match(/typ1=(\d+)/))
s = s.replace(/typ1=\d+/, "typ1=".concat((parseInt(m[1]) + 1).toString()));
und du verstehst nichts.
Mit regulären Ausdrücken kannst du (AFAIK) keine numerischen Berechnungen ausführen. Du musst dir also erstmal den Wert hinter "typ1=" als Zahl besorgen. Du suchst also "typ1=" gefolgt von Ziffern, welche du dir merken willst: /typ1=(\d+)/
Da du die Zeichenfolge, die dem Suchmuster entspricht heben willst, ist die Methode http://de.selfhtml.org/javascript/objekte/string.htm#match@title=match() einzusetzen; das Ergebnis speicherst du in m
.
Hat die Suche Erfolg, ist m
ein Array: in m[0]
steht die ganze passende Zeichenfolge ("typ1=0"); in m[1]
steht der erste (hier einzige) geklammerte Unterausdruck: die Zahl ("0").
Hat die Suche keinen Erfolg, ist m
kein Array, es gibt also weder m[0]
noch m[1]
. Damit das Script keinen Laufzeitfehler erzeugt (fallst "typ1=" nicht vorkommt oder keine Zahl dahinter steht), solltest du das mit einer if
-Abfrage abfangen und nur bei erfolgreicher Suche auf m[1]
(die Zahl) zugreifen.
Nun willst du ersetzen; dazu dient die Methode http://de.selfhtml.org/javascript/objekte/string.htm#replace@title=replace(). Damit die richtige Zahl ersetzt wird, wieder nach "typ1=" gefolgt von Ziffern suchen (die du dir jetzt nicht merken musst): /typ1=\d+/
Ersetzt wird duch "typ1=" gefolgt von der um 1 erhöhten Zahl, die immer noch als String(!) in m[1]
steht. Dazu wird sie in eine Ganzzahl umgewandelt (http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=parseInt()), erhöht und wieder in einen String umgewandelt (http://de.selfhtml.org/javascript/objekte/number.htm#to_string@title=toString()), der an "typ1=" angehängt wird (http://de.selfhtml.org/javascript/objekte/string.htm#concat@title=concat()).
Live long and prosper,
Gunnar
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)