昨晚老板们丢了个问题出来,在复制粘贴号码搜索的时候,搜索不到用户订单,这就很尴尬了,查了后台。发现老板输入发送给后台的是'<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
呼~,愉快吃午餐去!