Gunnar Bittersmann: Dezimal codierte Strings decodieren

Beitrag lesen

@@Gunnar Bittersmann:

nuqneH

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)); });
};

  
Wobei sich hier [MudGuards Einwand](https://forum.selfhtml.org/?t=199684&m=1344264) als Fallstrick erweist:  
  
Der reguläre Audruck matcht auch auf "B", dann wird aber nur kleines 'x' abgefragt und somit parseInt("X42", 10) aufgerufen, was 0 zurückgibt. Ein in den Text eingefügtes U+0000 ist ganz sicher nicht das, was man möchte.  
  
Qapla'

-- 
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.  
(Mark Twain)