Neo: Seltsames Problem mit RegEx, replace()

Hi,

Vereinfacht gesagt möchte ich per Regex bestimmte Zahlen in einem String suchen, mit denen herumrechnen und die Ergebnisse wieder einsetzen.

Detailliert gesagt sieht das ganze so aus:
html = html.replace (/[size=([1234567])]/gi, '<span style="font-size:'+("$1 "*2)+'">');
(meine Art BB-Code-Angaben in sinnvolle Größen umzuwandeln ;))

Das Problem ist jetzt, dass das RegEx-Suchergebnis "$1" scheinbar nicht korrekt zu int gecastet wird, weswegen jede numerische Berechnung damit "NaN" (not a number) ergibt :-/
Sogar .replace (/([1234567])/, ("$i"*1)); ergibt NaN.

Habe ich irgendwo einen grandiosen Denkfehler begangen, ist das eine Limitierung von Javascript oder bin ich einfach vollkommen falsch herangegangen?
Kann man vielleicht einen String explizit zu int casten? (wie int() bei PHP)

Danke!

  1. hi,

    Kann man vielleicht einen String explizit zu int casten? (wie int() bei PHP)

    http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int

    gruss,
    wahsaga

    1. hmm, danke.... bei Benutzung mit einem RegEx-Ergebnis ergibt es trotzdem NaN *sigh*

      Ich hab noch ein bisschen weiter rumgespielt und herausgefunden, dass bei Javascript offenbar zuerst der "Ersetz-String" komplett zusammengebaut wird und dann erst $1 usw. durch die Suchergebnisse ersetzt wird, also bekommt z.B. das parseInt() nicht die gefundene Zahl, sondern den String "$1" übergeben.
      Also werde ich mir etwas anderes überlegen müssen :-/