Here's a shorter form for (what I understood you) wanted to do based on your fiddle:
var s = '' ^ hola tio, que tal estas? !'
.replace(/(&#\d+;)/g,
function(a){
return String.fromCharCode(a.substr(2,a.length-3));
}
);
alert(s); //=> ' ^ hola tio, que tal estas? !
So, the regular expression here is /(&#\d+;)/g
By the way, &[#num][name];
are called (numeric) html entities. The code here is only working for such entities (so, not for named html entities like ©
(©) etc.). If you want to do that (and within a browser), use the method from the elected answer in this SO question