Я записал регулярное выражение, которое я ожидаю, должен работать, но оно не делает.
var regex = new RegExp('(?<=\[)[0-9]+(?=\])')
JavaScript дает мне ошибку Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group
Разве JavaScript не поддерживает предвидение или lookbehind?
Это должно работать:
var regex = /\[[0-9]+\]/;
var regex = /\[([0-9]+)\]/;
С помощью этого выражения вы могли бы сделать что-то вроде этого:
var matches = someStringVar.match(regex);
if (null != matches) {
var num = matches[1];
}
Lookahead поддерживается, но не lookbehind. Вы можете приблизиться, прибегнув к небольшой хитрости.
Если вы цитируете RegExp, следите за двойной экранировкой обратных слешей.