在我的Javascript代码中,此正则表达式/(?<=\/)([^#]+)(?=#*)/
在Chrome中工作正常,但在野生动物园中,我得到:
无效的正则表达式:无效的组说明符名称
有什么想法吗?
答案 0 :(得分:10)
貌似Safari尚不支持向后搜索(即您的(?<=\/)
)。一种替代方法是将之前的/
放在未捕获的组中,然后仅提取第一个组(/
之后和#
之前的内容)。 / p>
/(?:\/)([^#]+)(?=#*)/
此外,(?=#*)
很奇怪-您可能想提前寻找某物(例如#
或字符串的结尾),而不是{{1} }量词(零或更多*
次出现)。最好使用类似的
#
或完全忽略前瞻性(因为/(?:\/)([^#]+)(?=#|$)/
是贪婪的)。