代码之家  ›  专栏  ›  技术社区  ›  techguy2000

在chrome中工作,但在safari中中断:无效的正则表达式:无效的组说明符名称/(?<[\/]([^α] +)(?)=*)/[重复]

  •  5
  • techguy2000  · 技术社区  · 6 年前

    这个问题已经有了答案:

    在我的javascript代码中,这个regex /(?<=\/)([^#]+)(?=#*)/ 在Chrome上很好用,但在Safari上,我得到:

    无效的正则表达式:组说明符名称无效

    有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  10
  •   CertainPerformance    6 年前

    看来Safari还不支持Lookback(也就是说, (?<=\/) )另一种选择是 / 在未捕获的组中出现在前面,然后只提取第一个组(在 / 而之前 # )

    /(?:\/)([^#]+)(?=#*)/
    

    也, (?=#*) 很奇怪-你可能想向前看 某物 (如 γ 或字符串的结尾),而不是 * 量词(量词) 或多次出现 γ )最好用类似的东西

    /(?:\/)([^#]+)(?=#|$)/
    

    或者完全忽略前面的展望(因为 ([^#]+) 贪婪),视情况而定。