我有以下正则表达式:
/(?<={index:)\d+(?=})/g
我试图在这样的字符串中找到索引整数:
some text{index:1}{id:2}{value:3}
该表达式适用于PHP,但它在javascript中不起作用,我收到以下错误:
Uncaught SyntaxError:无效的常规 表达式:/(?&lt; = {index:)\ d +(?=})/: 无效的群组
我需要修理什么?
感谢。
答案 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;