JavaScript正则表达式异常(无效组)

时间:2010-11-16 23:38:42

标签: javascript regex

我有以下正则表达式:

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

我试图在这样的字符串中找到索引整数:

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

该表达式适用于PHP,但它在javascript中不起作用,我收到以下错误:

  

Uncaught SyntaxError:无效的常规   表达式:/(?&lt; = {index:)\ d +(?=})/:   无效的群组

我需要修理什么?

感谢。

3 个答案:

答案 0 :(得分:48)

(?<= )是一个积极的看法。 JavaScript的RegEx风格不支持lookbehinds(但它确实支持lookaheads)。

答案 1 :(得分:10)

JavaScript不支持后台断言。请改用此模式:

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

然后提取组中捕获的值。

答案 2 :(得分:2)

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