Der reguläre Ausdruck ist nicht fest, sondern soll also zur Laufzeit dynamisch erzeugt werden. Der Hinweis auf http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#eval@title=eval() kam schon in diesem Thread.
eval() ist trotzdem unnötig, dafür nimmt man new RegExp().
s = "?typ1=0&typ2=0";
type = "typ1";
ausdruck = new RegExp("(.*)" + type + "=(\\d+)(.*)");
if (ausdruck.exec(s))
s = RegExp.$1 + type + (parseInt(RegExp.$2) + 1).toString() + RegExp.$3;
Könnte übrigens aber mit zwei Ausdrücken performanter sein.
Ein new RegExp(type + "=(\d+)").exec(s) ausführen, daraus den neuen String zusammenbauen (z.B. typ1=1) und letztlich den alten Treffer über s.replace(altertreffer, neuerstring) durch den neuen ersetzen.
Aber viele Wege führen nach Rom.
Mathias