Вы можете использовать группы захвата для отслеживания того, что вы выбрали, а затем вставить его обратно в результат замены, используя обратные ссылки:
.replace(/(\[\d+]\[\w+]\[)\d+/, '$14')
См. Демонстрационную версию regex
Обратите внимание, что вы можете заменить \d+
и \w+
на [^\][]*
, чтобы соответствовать любым 0+ символам, кроме ]
и [
, если содержимое может содержать любые типы символов, кроме [
и ]
.
var s = "land[1][permit][3][permit_type]";
console.log(s.replace(/(\[\d+]\[\w+]\[)\d+/, '$14'));
Чтобы также заменить значение в первых скобках, вы можете использовать
var s = "land[1][permit][3][permit_type]";
console.log(s.replace(/(\[)\d+(]\[\w+]\[)\d+/, '$12$24'));
* $1
относится к значению, полученному с первой группой захвата, (\[)
и $2
относится к значению, полученному с помощью второй группы захвата, (]\[\w+]\[)
.