- найти позицию, с которой начинаются цифры в конце
- запомнить длину числа
- увеличить на 1 и перевести в строку
- при необходимости дописать нулей
- склеить с частью до числа
function stringInc(s) {
var pos = s.length - 1;
while(pos >= 0) {
if( Math.abs(s.charCodeAt(pos) - 52.5) < 5) pos--;
else break;
}
if( ++pos >= s.length) return s; // no number
var numLength = s.length - pos;
var numString = (parseInt(s.substr(pos)) + 1).toString();
if( numString.length < numLength) {
numString = ((Array(1 + numLength).join('0')) + numString).substr(-numLength);
}
return s.substr(0,pos) + numString;
}
stringInc('abc123') // abc124
stringInc('abc999') // abc1000
stringInc('abc00009') // abc00010
stringInc('009') // 010
stringInc('9') // 10
stringInc('aaa') // aaa