IOS&Safari不兼容零宽断言正则的坑
前言
讲真的,正则在某些情况下是真的好用,判断某些规则或者替换某些数值都能用到,很早之前就想写这个了,为什么呢,之前做一个密码的规则效验需求,我想没想,正则啊,方便,就写了一个正则条件,其中出现了?<=这个写法,没错零宽断言,其实很好用的,可以把很长的一个判断缩减一大半,使代码更加优雅吧
出事了
万万没想到,写完测试通过后,发线上就出问题, 老板苹果手机卡白屏了,很奇怪,我的苹果是正常的,真的很奇怪,最后查到了就是这个零宽正则的问题,它在最新版的IOS和Safari是兼容的,但是低版本是不兼容的,我记得IOS15.3以下都不兼容
解决
- 方案一就是换正则写法了,我用的就是这一种
- 方案二双斜杠兼容掉
零宽断言正则简介
正则表达式零宽断言一共四种:
通俗理解:
- (?=pattern):后面是什么
- (?!pattern):后面不是什么
- (?<=pattern):前面是什么
- (?<!pattern):前面不是什么