美文网首页
iOS11 通讯录手机号拷贝Bug

iOS11 通讯录手机号拷贝Bug

作者: iLees | 来源:发表于2018-04-23 15:37 被阅读279次

最近,测试反馈一个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 真的不打算修复了吗?

相关文章

网友评论

      本文标题:iOS11 通讯录手机号拷贝Bug

      本文链接:https://www.haomeiwen.com/subject/ojvyaxtx.html