1. 姓名脱敏方法
- 判断传入字段是否是字符串;
- 将字符串除第一个字符后的其他字符全部替换为 *。
const replaceUserName = (name) => {if(isTypingMathods.isString(name)){return name.replace(/(?<=.)./g,'*')}return name
}
2. 问题
- 编译后在浏览器和安卓机没有发现任何问题;
- 部分低版本iOS机型出现白屏现象。
3. 使用 VConsole 查看报错
崩溃的事情发生了,他并不会报错。我最开始排查代码的时候也不会觉得是上边正则的问题。
4. 问题排查
说真的这是我排查最久一次bug【使用了一天,依次发布测试】,由于是两次版本一起发布,因此我选择了回退到上次发布的正式版本,然后到测试环境进行每次修改的发布,然后用有问题的手机进行测试。
5. 出现多次发布排查问题的原因
- 使用 VConsole 在真机没有发现错误,所以不知道错误地方;
- 查看了代码并没有使用需要兼容低版本的语法;
- 所以最后采用最笨的办法,从上一个正式版本后,对每次修改提交代码依次发布测试。
6. 分析原因
由于大部分真机和浏览器没有问题,所以我怀疑是 taro 编译后,对 replace(