Gunnar Bittersmann: Variablen in RegExps

Beitrag lesen

Und für den Mist gab’s auch noch „hilfreich“?! ;-)

Die zweifache Anwendung eines regulären Ausdrucks ist natürlich nicht optimal. Und auch nicht erforderlich.

Man zerlegt den String mit http://de.selfhtml.org/javascript/objekte/regexp.htm#exec@title=exec() in Teile:

  • Anfang (beliebig viele beliebige Zeichen, merken in $1),
  • Zeichenfolge "typ1=",
  • folgende Zahl (mindestens eine Ziffer, merken in $2),
  • Rest (beliebig viele beliebige Zeichen, merken in $3).

Bei Erfolg erhöht man die Zahl und baut den String mit http://de.selfhtml.org/javascript/objekte/regexp.htm#dollar_1_9@title=$[1..9\] wieder zusammen:

s = "?typ1=0&typ2=0";  
if (/(.*)typ1=(\d+)(.*)/.exec(s))  
  s = RegExp.$1 + "typ1=" + (parseInt(RegExp.$2) + 1).toString() + RegExp.$3;

Live long and prosper,
Gunnar

--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)