Есть плагин для клонирования полей формы, в котором индекс в атрибуте name прирастает при каждом клонировании, т.е. name типа meta[go][0] в добавленном поле становится meta[go][1].
Но проблема в том, что сейчас прирастают все числовые значения, и во вложенном добавленном поле атрибут name вместо meta[go][0][to][1] становится meta[go][1][to][1].
Для инкремента используется такой метод:
var old_val = $(this).attr("name");
var new_val = old_val.replace(/-?\d+/g, function (n) { return ++n; });
$(this).attr("name", new_val);
Как в данном случае сделать так, чтобы прирастало значение только последнего индекса?
Найдите последнее вхождение целого числа с помощью /-?\d+(?![^]*\d)/:
var old_val = "meta[go][0][to][0]"; // $(this).attr("name");
var new_val = old_val.replace(/-?\d+(?![^]*\d)/, function (n) { return ++n; });
console.log(new_val); //$(this).attr("name", new_val);
См. пример работы регулярного выражения
Подробности
-? - необязательный "минус" (дефис)\d+ - 1+ цифр(?![^]*\d) - блок просмотра вперёд, который отменяет совпадение, если сразу после текущей позиции имеется 0 и более любых символов ([^]*, можно использовать .*, если нет символов перехода на новую строку) и затем любая цифра.Цепляйте последнюю цифру в слове
/-?\d+(?=][^\[]?)/g,
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости