如何将方括号内的数字与正则表达式匹配

时间:2010-08-09 22:26:23

标签: javascript regex

我写了一个正则表达式,我希望它可以工作,但事实并非如此。

  var regex = new RegExp('(?<=\[)[0-9]+(?=\])')

Javascript正在向我显示错误Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group

javascript不支持lookahead或lookbehind吗?

4 个答案:

答案 0 :(得分:19)

这应该有效:

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

<小时/> 编辑:使用分组运算符仅定位数字:

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

使用此表达式,您可以执行以下操作:

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

答案 1 :(得分:2)

支持Lookahead,但不支持。你可以get close,但有点诡计。

答案 2 :(得分:1)

以let的形式递增多个数字:

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

尝试:

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

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

答案 3 :(得分:0)

如果你引用了一个RegExp,请注意双重转义你的反斜杠。