一个 H5 项目中使用安卓设备一切正常,用 iOS 就显示 连接服务器超时,点击屏幕重试。

排查了半天,原来是正则引起的。
可能会报以下错误:
Invalid regular expression: invalid group specifier name
[system] SyntaxError{}
Info Warn Error SyntaxError: Invalid regular expression: invalid group specifier name
原因:
iOS 不支持零宽断言,如果正则表达式中包含零宽断言 , 在安卓手机上正常 , 但是在 iOS 上就会报错。
常见零宽断言:?<= 、?
例如:只显示姓名开头第一个字(正则),格式:张**//只显示姓名开头第一个字
data.replace(/(?<=.)./g, '*')
解决:
不使用零宽断言,可以使用截取&拼接字符串的方式,如果实现比较复杂的效果可以自己封装一个方法。
例如:我要截取银行卡后四位,前面加星号。
正则(断言):no.replace(/(?<=\d{0})\d+(?=\d{4})/, "****")
截取&

















