Trying to get my head around some regex using JS .replace to replace an integer with a string.
For example, the string could be:
var string = 'image[testing][hello][0][welcome]';
I want to replace the ‘0’ with another value. I was originally using this:
string.replace( /\[\d\]/g, '[newvalue]');
But when we start replacing double digits or more (12, 200, 3204, you get what I mean), it stops working properly. Not sure how to get it functioning the way I want it too.
Thanks in advance. Greatly appreciated.
You need to specify multiple digits:
JS Fiddle demo
(Note the demo uses jQuery to iterate through the nodes, but it’s merely a convenience, and has no bearing on the regular expression, it just demonstrates its function.)
The reason your original didn’t work, I think, was because
\dmatches only a single digit, whereas the+operator/character specifies the preceding (in this case digit) character one or more times.Reference: