作者:mobiledu2502900917 | 来源:互联网 | 2022-12-09 13:02
如何解决《适用于Chrome,但在Safari中断:无效的正则表达式:无效的组说明符名称/(?<=\/)([^#]+)(?=#*)/》经验,为你挑选了1个好方法。
在我的Javascript代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/
在Chrome中运行良好,但在safari中,我得到:
无效的正则表达式:无效的组说明符名称
有任何想法吗?
1> CertainPerfo..:
看起来Safari还不支持lookbehind(也就是你的(?<=\/)
).一种替代方法是将/
之前的内容放入非捕获组中,然后仅提取第一组(在/
之前和之后的内容#
).
/(?:\/)([^#]+)(?=#*)/
此外,(?=#*)
很奇怪 - 您可能希望预测某些事物(例如#
字符串的结尾),而不是*
量词(零次或多次出现#
).使用类似的东西可能更好
/(?:\/)([^#]+)(?=#|$)/
或者完全省略前瞻(因为([^#]+)
贪婪),这取决于你的情况.