我有以下正则表达式:
/(?<={index:)\d+(?=})/g
我正在尝试找到像这样的字符串中的索引整数:
some text{index:1}{id:2}{value:3}
这个表达式在php中运行良好,但在javascript中不起作用,我收到以下错误:
Uncaught SyntaxError: Invalid regular expression: /(?<={index:)\d+(?=})/: Invalid group
我需要怎么修复?
谢谢。
我有以下正则表达式:
/(?<={index:)\d+(?=})/g
我正在尝试找到像这样的字符串中的索引整数:
some text{index:1}{id:2}{value:3}
这个表达式在php中运行良好,但在javascript中不起作用,我收到以下错误:
Uncaught SyntaxError: Invalid regular expression: /(?<={index:)\d+(?=})/: Invalid group
我需要怎么修复?
谢谢。
(?<= )
是一个正向回顾后断言。JavaScript的RegEx不支持回顾后断言(但支持前瞻断言)。
JavaScript不支持向后查找断言。请使用以下模式:
/{index:(\d+)}/g
然后提取捕获组中的值。
\d+
周围的括号;整数被捕获在第一组中。 - Alan Moore"some text{index:1}{id:2}{value:3}".match(/{index:(\d+)}/g)[0]
返回{index:1}
,而"some text{index:1}{id:2}{value:3}".match(/{index:(\d+)}/g)[1]
返回'undefined'。 - Maksim Vi.var str = "some text{index:1}{id:2}{value:3}";
var index = str.match(/{index:(\d+)}/);
index = index && index[1]*1;
/g
确实有帮助 =) - Maksim Vi.
Uncaught SyntaxError: Invalid regular expression: /(?<=\{index:)\d+(?=\})/: Invalid group
这个错误,除非还有其他转义大括号的方法,否则无法正常运行。 - Maksim Vi.