问题是如何发现:微信小程序内嵌H5的页面白屏(仅苹果手机),但是无法看到报错。故使用Safari浏览器打开,发现报错。
// 正确但是不兼容的写法
str = str.replace(/(?<=[1-9]\d{5}[1-9]\d{3} ((0[1-9])|(1[0-2])) ((0[1-9])|([1-2]\d)|(3[0-1]))\d{3})x/g, 'X');
// 兼容的写法
str = str.replace(/([1-9]\d{5}[1-9]\d{3} ((0[1-9])|(1[0-2])) ((0[1-9])|([1-2]\d)|(3[0-1]))\d{3})x/g, '$1X');
上面正则的目的是把身份证中的x换为X