How do I match a number inside square brackets with regex

This should work:

var regex = /\[[0-9]+\]/;


edit: with a grouping operator to target just the number:
var regex = /\[([0-9]+)\]/;

With this expression, you could do something like this:

var matches = someStringVar.match(regex);
if (null != matches) {
  var num = matches[1];
}

Lookahead is supported, but not lookbehind. You can get close, with a bit of trickery.


To increment multiple numbers in the form of lets say:

var str = '/a/b/[123]/c/[4567]/[2]/69';

Try:

str.replace(/\[(\d+)\]/g, function(m, p1){
 return '['+(p1*1+1)+']' }
)

//Gives you => '/a/b/[124]/c/[4568]/[3]/69'