在Chrome中可以使用,但在Safari中可以使用:正则表达式无效:无效的组说明符名称/(?<= \ /)([^#] +)(?=#*)/

时间:2018-07-28 06:46:14

标签: javascript regex safari

在我的Javascript代码中,此正则表达式/(?<=\/)([^#]+)(?=#*)/在Chrome中工作正常,但在野生动物园中,我得到:

  

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

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

貌似Safari尚不支持向后搜索(即您的(?<=\/))。一种替代方法是将之前的/放在未捕获的组中,然后仅提取第一个组(/之后和#之前的内容)。 / p>

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

此外,(?=#*)很奇怪-您可能想提前寻找某物(例如#或字符串的结尾),而不是{{1} }量词(或更多*次出现)。最好使用类似的

#

或完全忽略前瞻性(因为/(?:\/)([^#]+)(?=#|$)/ 是贪婪的)。