碰到个很神奇的 bug,苹果手机独有,系统 ios14.8,由正则零宽断言引起

2023-04-04 21:43:06 +08:00
 rimworld

最小复现

https://t.wss.ink/f/aw3edkbs3xe 复制链接到浏览器打开 下载下载,解压缩,然后终端,pnpm install

通过 pnpm create vite 脚手架创建的项目,而且跟脚手架搭建起来的项目绝对无关 在 pc ,安卓手机上都正常,在 ios14.8 系统下,会导致一直 loading (在 index.html #app 下随便放了个 loading 动画上去),无法进入 home 页

相关代码
let path = "/options/test/index.ts"
let name = new RegExp('(?<=\/options\/).*(?=\/index)').exec(path)[0]
1229 次点击
所在节点    前端开发
9 条回复
rimworld
2023-04-04 21:50:44 +08:00
在手机 safari ,手机 chrome 上都是一直 loading 。然后因为我自己是 win+ios 的组合,所以没法看 safari console.希望有 mac 的同学,能帮我看下 safari 后台报什么错。我也是根据时间线看修改记录,才发现到这块,找了好久的 bug 。
autoxbc
2023-04-04 22:08:32 +08:00
https://caniuse.com/?search=%3F%3C%3D

URL 处理建议用 URI.js
const path = '/options/test/index.ts';
const name = new URI(path).segment(1);
dw2693734d
2023-04-04 22:09:50 +08:00
零宽断言这个我也在其他语言环境上经常遇到问题
rimworld
2023-04-04 22:12:59 +08:00
@autoxbc 感谢!!!我正则当时是按照正则 30 分钟教程: https://deerchao.cn/tutorials/regex/regex.htm#lookaround 我刚才还去看了下 mdn ,也没看到有写正则的浏览器兼容性。caniuse ,我还以为只有 css ,html ,js 一些新的变量方法需要去看。 第一次认识到正则还有兼容性问题。 但是,就很奇怪,为啥苹果对正则这个支持这么差。应该是很容易的一种支持吧?
rimworld
2023-04-04 22:15:02 +08:00
@autoxbc caniuse 这里没有标注 chrome on ios. 我的 ios 上的 chrome 也会这样
Satelli
2023-04-04 22:18:34 +08:00
@rimworld iOS 上所有浏览器都只能用 WebKit 。
rimworld
2023-04-04 22:20:36 +08:00
@Satelli 谢谢,我这块已经忘光了,就记得微软 ie 以前是 trident 。看来我得去再温习一下了。
zbinlin
2023-04-04 23:03:40 +08:00
这功能是后加的,没实现也是有可能的。
webszy
2023-04-06 16:39:25 +08:00
这是兼容性问题,无法解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/929847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX