MudGuard: Dezimal codierte Strings decodieren

Beitrag lesen

Hi,

String.prototype.unescape = function ()

{
  return this.replace(/&#([0-9]+|x[0-9a-f]+);/gi, function (m, u) { return String.fromCharCode(u.charAt(0) == 'x' ? parseInt(u.substr(1), 16) : parseInt(u, 10)); });
};

  
In u scheint der Inhalt der Klammer übergeben zu werden?  
  
Was passiert, wenn es mehrere Klammern gibt?  
  
Also so:  
  
return this.replace(/&#([0-9]+)|x([0-9a-f]+);/gi, function ...  
  
Ist u dann ein Array? Oder gibt es einen 3. Parameter?  
  
Dann könnte man ggf. noch auf den substr verzichten, müßte dann halt die Unterscheidung anhand der Länge des ersten/zweiten Klammerinhalts (der ja nur dann leer bzw. null bzw. undefined sein kann, wenn der jeweils andere Zweig matcht) ...  
  
  
cu,  
Andreas

-- 
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
[O o ostern ...](http://ostereier.andreas-waechter.de/)  
  
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.