我写了一个正则表达式,我希望它可以工作,但事实并非如此。
var regex = new RegExp('(?<=\[)[0-9]+(?=\])')
Javascript正在向我显示错误Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group
javascript不支持lookahead或lookbehind吗?
答案 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,请注意双重转义你的反斜杠。