Как сопоставить число в квадратных скобках с regex
Я написал регулярное выражение, которое я ожидаю, должно работать, но это не так.
var regex = new RegExp('(?<=[)[0-9]+(?=])')
Javascript дает мне ошибку Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group
javascript не поддерживает lookahead или lookbehind?
4 ответов
Это должно работать:
var regex = /\[[0-9]+\]/;
редактировать: с оператором группировки для целевой только номер:
var regex = /\[([0-9]+)\]/;
С этим выражением вы можете сделать что-то вроде этого:
var matches = someStringVar.match(regex);
if (null != matches) {
var num = matches[1];
}
чтобы увеличить несколько чисел в виде давайте скажем:
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'