Зачем поправиль, слющай, а?
Был же рабочий вариант, а сейчас просто подоогнанный под задачу:
text = '123456789';
function PreSubStr(text,st0,Sublen){
var start = 1 + st0 - Sublen;
if(start < 0) return false;
return text.substr(start,Sublen);
}
alert('Должно быть: 567 \n\nРезультат: '+PreSubStr(text,2,3))