在我的 Javascript 代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/
在 Chrome 中运行良好,但在 safari 中,我得到:
无效的正则表达式:无效的组说明符名称
有任何想法吗?
在我的 Javascript 代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/
在 Chrome 中运行良好,但在 safari 中,我得到:
无效的正则表达式:无效的组说明符名称
有任何想法吗?
看起来 Safari尚不支持后视(即您的(?<=\/)
)。一种替代方法是将/
之前的 放在未捕获的组中,然后仅提取第一组(在 之后/
和之前的内容#
)。
/(?:\/)([^#]+)(?=#*)/
此外,(?=#*)
很奇怪 - 您可能想要提前查找某些内容(例如#
或 字符串的结尾),而不是*
量词(零次或多次出现#
)。使用类似的东西可能会更好
/(?:\/)([^#]+)(?=#|$)/
或者完全省略前瞻(因为它([^#]+)
是贪婪的),具体取决于您的情况。