JS regex заменить номер

пытаюсь обойти некоторые регулярные выражения с помощью JS .заменить, чтобы заменить целое число строкой.

например, строка может быть:

var string = 'image[testing][hello][0][welcome]';

Я хочу заменить "0" другим значением. Первоначально я использовал это:

string.replace( /[d]/g, '[newvalue]');

но когда мы начинаем заменять двойные цифры или больше (12, 200, 3204, вы получаете то, что я имею в виду), он перестает работать должным образом. Не уверен, как заставить его работать так, как я этого хочу.

спасибо заранее. Очень признателен.

2 ответов


вам нужно указать несколько цифр:

string.replace( /\[\d+\]/g, '[newvalue]');

JS Fiddle demo

(обратите внимание, что демо использует jQuery для итерации по узлам, но это просто удобство и не имеет никакого отношения к регулярному выражению, оно просто демонстрирует свою функцию.)

причина, по которой ваш оригинал не работал, я думаю, потому что \d соответствует только одной цифре, тогда как + оператор/символ указывает на предыдущий (в данном случае цифра) характер один или несколько раз.

ссылки:


использовать следующий:

string.replace( /\[\d+\]/g, '[newvalue]');

это должно соответствовать всем цифрам в скобках.