Используйте функцию обратного вызова для замены, чтобы упростить ваш код:
this.id = this.id.replace(/(-)(\d)*/, function ($1,$2,$3,$4) {
console.log(arguments);
var index = parseInt($3,10);
return $2 + ++index + "";
});
$2
соответствует первым круглым скобкам (в вашем случае '-'), $3
соответствует цифровым символам. Затем вы вставляете цифру с parseInt()
и увеличиваете ее на единицу. Наконец, вы соединяете замененную строку с помощью +
строкового оператора.