Исключение регулярного выражения JavaScript (недопустимая группа)

У меня есть следующее регулярное выражение:

/(?<={index:)\d+(?=})/g

Я пытаюсь найти целое число индекса в строках вроде этого:

some text{index:1}{id:2}{value:3}

Это выражение отлично работает с php, но оно не работает в javascript, я получаю следующую ошибку:

Неактивный SyntaxError: неверный регулярный выражение:/(? <= {index:)\d + (? =})/: Недопустимая группа

Что мне нужно исправить?

Спасибо.

Ответ 1

var str = "some text{index:1}{id:2}{value:3}";
var index = str.match(/{index:(\d+)}/);
index = index && index[1]*1;

Ответ 2

(?<= ) - это положительный взгляд. JavaScript-код RegEx не поддерживает lookbehind (но он поддерживает lookaheads).

Ответ 3

JavaScript не поддерживает утверждения look-behind. Вместо этого используйте этот шаблон:

/{index:(\d+)}/g

Затем извлеките значение, зафиксированное в группе.