tec*_*000 7 javascript regex safari
在我的Javascript代码中,这个正则表达式/(?<=\/)([^#]+)(?=#*)/在Chrome中运行良好,但在safari中,我得到:
无效的正则表达式:无效的组说明符名称
有任何想法吗?
Cer*_*nce 15
看起来Safari还不支持lookbehind(也就是你的(?<=\/)).一种替代方法是将/之前的内容放入非捕获组中,然后仅提取第一组(在/之前和之后的内容#).
/(?:\/)([^#]+)(?=#*)/
Run Code Online (Sandbox Code Playgroud)
此外,(?=#*)很奇怪 - 您可能希望预测某些事物(例如#字符串的结尾),而不是*量词(零次或多次出现#).使用类似的东西可能更好
/(?:\/)([^#]+)(?=#|$)/
Run Code Online (Sandbox Code Playgroud)
或者完全省略前瞻(因为([^#]+)贪婪),这取决于你的情况.
正则表达式?<=不支持 Safari iOS,我们可以使用?:\n注意:/或非捕获组中之前出现的第一个推荐信
查看详细信息: https: //caniuse.com/js-regexp-lookbehind
\nlet str = "Get from Slash/to Next hashtag #GMK"\n\n\nlet workFineOnChromeOnly = str?.match(/(?<=\\/)([^#]+)(?=#*)/g)\nconsole.log("\xe2\x9d\x8c Work Fine On Chrome Only", workFineOnChromeOnly )\n\n\nlet workFineSafariToo = str?.match(/(?:\\/)([^#]+)(?=#*)/g)\nconsole.log("\xe2\x9c\x94\xef\xb8\x8f Work Fine Safari too", workFineSafariToo )Run Code Online (Sandbox Code Playgroud)\r\nSafari 在 16.4 中添加了lookbehind 支持。
https://developer.apple.com/documentation/safari-release-notes/safari-16_4-release-notes#JavaScript
| 归档时间: |
|
| 查看次数: |
4249 次 |
| 最近记录: |