I have the following regular expression:
/(?<={index:)\d+(?=})/g
I am trying to find index integer in strings like this one:
some text{index:1}{id:2}{value:3}
That expression works fine with php, but it doesn't work in javascript, I get the following error:
Uncaught SyntaxError: Invalid regular expression: /(?<={index:)\d+(?=})/: Invalid group
What do开发者_运维百科 I need to fix?
Thanks.
(?<= )
is a positive lookbehind. JavaScript's flavor of RegEx does not support lookbehinds (but it does support lookaheads).
JavaScript does not support look-behind assertions. Use this pattern instead:
/{index:(\d+)}/g
Then extract the value captured in the group.
var str = "some text{index:1}{id:2}{value:3}";
var index = str.match(/{index:(\d+)}/);
index = index && index[1]*1;
精彩评论