线上项目有一天测试发现在填写收货地址时无法提交一直提示手机号码不正确! 但是手动输入就可以
然后一个一个排查过程中发现
红色箭头所指是从Iphone复制出来的 绿色箭头是自己输入的
同样的正则 手机号码也完全符合规则 为什么上面会出错 而下面正常 测试了很多次都找不出问题所在
最后去删除复制出来的手机号时 发现多删除了一次 然后再进行搜索发现确实有BUG
原来有一个隐形字符 恕我肉眼凡胎真的看不出来
不过可以动手测试一下
怎么length 为13个 那就有问题了 而且多了一个%E2%80%AD 和%E2%80%AC
但是好像苹果公司到现在都还没解决(IOS11)
那只有我们自己来做下了 就算苹果公司修改了 也要兼容以前的版本 所以提供的解决方案如下:
tel.replace(/[^\d]/g,'')
保留数字 替换其他的参考:
https://github.com/zwwill/blog/issues/12