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