iOS11 通讯录手机号拷贝Bug

最近,测试反馈一个bug:iOS11系统,从手机通讯录拷贝一个手机号码到输入框后,手机格式校验失败。
跟进了一下,发现拷贝后的号码信息前后各加了一个字符,如下:



前面增加了:\U202d
后面增加了:\U202c
这两个字符在UI上是不展示的,所以看起来像是开发人员正则表达式的锅。
解决方案是在格式校验前,先把数字之外的信息加以过滤,代码如下:

+ (NSString *)clearNumberForIOS11:(NSString *)str {
    if ([str isKindOfClass:[NSString class]]) {
        return [[str componentsSeparatedByCharactersInSet:
                 [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet]] componentsJoinedByString:@""];
    } else {
        return str;
    }
}

另外一篇文章的作者也发现了这个问题:
IOS 11 通讯录手机号「隐形字符」的 Bug,Apple 真的不打算修复了吗?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很多人可能会觉得做PPT的准备工作无非打开office,整理好文字找好素材,但如果你是这样做的,那么恭喜你,你将有...
    伊水浅墨阅读 3,418评论 0 6
  • 存在感是什么东东?光说概念,可能大家不容易有印象,这样吧,我讲一个故事~ 在2016年11月的拆书帮武汉年会上,有...
    南昌阿波罗阅读 3,418评论 3 5
  • 不管什么培训,研讨是一个无法跳过的环节。总结、找问题、行动学习、私董会、工作坊都是以研讨为主的培训形式,因为通过它...
    培训师田野阅读 4,227评论 1 1
  • 起风了
    陆幻的梦游阅读 1,417评论 0 0
  • 那些逝去的,叶与花 以前总是很敏感你的一字一图,担心着没有你的日子的无着。后来绷紧的情绪慢慢舒缓下来,你却于不经意...
    千誉嘉言阅读 1,339评论 6 7