Предложу такой вариант...
var str="AAAADEEESSQQQQQQ";
alert(arh(str));
function arh(Str){
var cnt=0;
var old=Str.slice(0,1);
var arh=old;
for (var i=1; i<Str.length; i++){
var val=Str.slice(i,i+1);
if (val==old) {
++cnt;
} else {
arh=arh+((cnt==0)? '': ++cnt)+val;
old=val;
cnt=0;
};
};
if (cnt>0) {
arh=arh+(++cnt);
};
return arh;
};