Как я соответствую числу в квадратных скобках с regex

Я записал регулярное выражение, которое я ожидаю, должен работать, но оно не делает.

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

JavaScript дает мне ошибку Invalid regular expression :(/(?<=[)[0-9]+(?=])/): Invalid group

Разве JavaScript не поддерживает предвидение или lookbehind?

9
задан Teddy 9 August 2010 в 22:26
поделиться

3 ответа

Это должно работать:

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


редактировать : с оператором группировки для нацеливания только на число:
var regex = /\[([0-9]+)\]/;

С помощью этого выражения вы могли бы сделать что-то вроде этого:

var matches = someStringVar.match(regex);
if (null != matches) {
  var num = matches[1];
}
19
ответ дан 4 December 2019 в 09:34
поделиться

Lookahead поддерживается, но не lookbehind. Вы можете приблизиться, прибегнув к небольшой хитрости.

2
ответ дан 4 December 2019 в 09:34
поделиться

Если вы цитируете RegExp, следите за двойной экранировкой обратных слешей.

0
ответ дан 4 December 2019 в 09:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: