问题
最近在做一个项目中出现苹果手机从电话簿复制电话号码粘贴在系统中点击下一步提示手机号码格式不正确问题,粘贴的手机号码中间没有空格,也只有11位,一开始不知道问题在哪里,后来通过对粘贴的手机号码进行长度length计算发现有12位,最后得出结论苹果手机从电话簿复制手机号码时会在末尾多一位看不见的占位符,通过肉眼无法看到,只能通过长度length才能得出有12位。
解决方法
解决方法就是将用户输入的手机号码截取前11位就可以得到正确的手机号码了,也可以先做一个去除空格的操作再进行截取,因为有的手机复制手机号粘贴出来的格式是这样的“123 1234 1234”,如果这样格式的手机号直接截取会造成截取号码不正确,所以需要先做一个去除空格操作,再进行截取,这个问题就可以解决了。
补充
之前提到的解决方法无法解决手机号前面存在占位符的情况,所以说需要把输入的手机号中的数字提取出来,这样就不怕占位符存在手机号的哪里了,程序如下。
var num = phone.replace(/[^0-9]/ig,"");
其中phone为粘贴进去的有问题的手机号,而num为提取出来数字的正确手机号。