微信小程序 解决iOS复制通讯录号码带unicode问题

昨晚老板们丢了个问题出来,在复制粘贴号码搜索的时候,搜索不到用户订单,这就很尴尬了,查了后台。发现老板输入发送给后台的是'<202d>159xxxx8x9<202c>',我寻思着是不是复制错了。

问了具体情况,就是手机直接粘贴的,这就奇怪了,用我安卓机测试没这个问题,定位到问题发生在ios系统上。果然百度了一下是因为自带了Unicode编码,而且这个编码是不可见的。

所以接下来就一顿搜索这个问题的解决方案,找了很多,都是告诉我这个问题的出现,比如:https://juejin.cn/post/6844903683935698952

嗯,我了解了,然后去找解决方案,各种都是后台的,但我是一个前端渣渣呀,不能处理后台的事情,所以只能找前端解决方案。

经过我的一系列正则表达式测试之后,发现我怎么用replace都不行。没办法只能承认自己正则太弱鸡。后面功夫不负有心人啊!!!终于遇到了一个哥们写的心得啊。真的是两眼泪汪汪,要感谢这个小伙子,解决了万年老啊姨的苦难。

解决方案(正题,上面牢骚)

this.data.phone_num.replace(/\D/g, '');//解决ios自带的unicode编码的问题

我需要的是去掉空格去掉,所以多加了去掉空格的

this.data.phone_num.replace(/[, ]/g,'').replace(/\D/g, '');

一把辛酸泪,再次感谢帅小伙。

要是解决了你的问题,请给他个star

https://github.com/pod4g/tool/wiki/%E8%AE%B0%E4%B8%80%E6%AC%A1ios%E9%80%9A%E8%AE%AF%E5%BD%95%E6%8B%B7%E8%B4%9D%E5%87%BA%E7%9A%84%E5%8F%B7%E7%A0%81%E5%90%AB%E6%9C%89%E4%B8%8D%E5%8F%AF%E8%A7%81%E5%AD%97%E7%AC%A6%E7%9A%84bug

呼~,愉快吃午餐去!

上一篇:关于redis服务无法启动问题


下一篇:Python实战:常用正则表达式汇总