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