代码之家  ›  专栏  ›  技术社区  ›  Maksim Vi.

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

  •  21
  • Maksim Vi.  · 技术社区  · 15 年前

    我有以下正则表达式:

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

    我正试图在如下字符串中查找索引整数:

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

    该表达式在php中工作得很好,但在javascript中不工作,我得到以下错误:

    未捕获的语法错误:无效的正则 表达式:/(?<={索引:)\d+(?=})/: 无效组

    我需要修理什么?

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Phrogz    15 年前
    var str = "some text{index:1}{id:2}{value:3}";
    var index = str.match(/{index:(\d+)}/);
    index = index && index[1]*1;
    
        2
  •  51
  •   Yves M.    8 年前

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

        3
  •  10
  •   cdhowie    15 年前

    JavaScript不支持look-behind断言。改为使用此模式:

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

    然后提取组中捕获的值。