iphone 通讯录复制手机号码问题,网页无法使用正则匹配手机号 错误:Invalid or unexpected token

在一次线上项目测试中,发现从iPhone复制的手机号码在提交时被判定为不正确,但手动输入则正常。经过排查,发现复制的文本中存在不可见字符导致长度异常。本文详细记录了问题复现过程及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线上项目有一天测试发现在填写收货地址时无法提交一直提示手机号码不正确! 但是手动输入就可以

然后一个一个排查过程中发现


红色箭头所指是从Iphone复制出来的  绿色箭头是自己输入的

同样的正则 手机号码也完全符合规则 为什么上面会出错 而下面正常 测试了很多次都找不出问题所在

最后去删除复制出来的手机号时 发现多删除了一次 然后再进行搜索发现确实有BUG

原来有一个隐形字符 恕我肉眼凡胎真的看不出来 

不过可以动手测试一下


怎么length 为13个 那就有问题了 而且多了一个%E2%80%AD 和%E2%80%AC 

但是好像苹果公司到现在都还没解决(IOS11)

那只有我们自己来做下了 就算苹果公司修改了 也要兼容以前的版本 所以提供的解决方案如下:

tel.replace(/[^\d]/g,'')
保留数字 替换其他的



参考:

https://github.com/zwwill/blog/issues/12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值