Falls meine Vermutung richtig sein sollte:
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.
Ausgehend von
s = "?typ1=0&typ2=0";
if (/(.*)typ1=(\d+)(.*)/.exec(s))
s = RegExp.$1 + "typ1=" + (parseInt(RegExp.$2) + 1).toString() + RegExp.$3;
wird /(.*)typ1=(\d+)(.*)/
ersetzt durch eval("/(.*)typ1=(\d+)(.*)/")
:
s = "?typ1=0&typ2=0";
if (eval("/(.*)typ1=(\d+)(.*)/").exec(s))
s = RegExp.$1 + "typ1=" + (parseInt(RegExp.$2) + 1).toString() + RegExp.$3;
Das funktioniert nicht aber nicht mehr. Das "" muss maskiert werden, damit es erhalten bleibt:
s = "?typ1=0&typ2=0";
if (eval("/(.*)typ1=(\\d+)(.*)/").exec(s))
s = RegExp.$1 + "typ1=" + (parseInt(RegExp.$2) + 1).toString() + RegExp.$3;
Das tut immer noch das Gleiche.
Nun kannst du das Argument von eval() manipulieren, den String also auseinanderreißen und die Variable type ins Spiel bringen:
s = "?typ1=0&typ2=0";
type = "typ1";
if (eval("/(.*)"+ type + "=(\\d+)(.*)/").exec(s))
s = RegExp.$1 + "typ1=" + (parseInt(RegExp.$2) + 1).toString() + RegExp.$3;
Die Anpassung der Zuweisung s =
… sollte dir allein gelingen.
Live long and prosper,
Gunnar
--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)