Ответ 1
var str = "some text{index:1}{id:2}{value:3}";
var index = str.match(/{index:(\d+)}/);
index = index && index[1]*1;
У меня есть следующее регулярное выражение:
/(?<={index:)\d+(?=})/g
Я пытаюсь найти целое число индекса в строках вроде этого:
some text{index:1}{id:2}{value:3}
Это выражение отлично работает с php, но оно не работает в javascript, я получаю следующую ошибку:
Неактивный SyntaxError: неверный регулярный выражение:/(? <= {index:)\d + (? =})/: Недопустимая группа
Что мне нужно исправить?
Спасибо.
var str = "some text{index:1}{id:2}{value:3}";
var index = str.match(/{index:(\d+)}/);
index = index && index[1]*1;
(?<= )
- это положительный взгляд. JavaScript-код RegEx не поддерживает lookbehind (но он поддерживает lookaheads).
JavaScript не поддерживает утверждения look-behind. Вместо этого используйте этот шаблон:
/{index:(\d+)}/g
Затем извлеките значение, зафиксированное в группе.