可以判断电话号码是否合法的那个类

一直在用正则式判断电话号码是否合法,然而我还不很会写正则式,后来发现了这样一个类——NSDataDetector。在昨天之前我都不知道这是个啥,实际用了一下,可以用,但有些不足。

+ (nullable NSDataDetector *)dataDetectorWithTypes:(NSTextCheckingTypes)checkingTypes error:(NSError **)error;
- (nullable instancetype)initWithTypes:(NSTextCheckingTypes)checkingTypes error:(NSError **)error NS_DESIGNATED_INITIALIZER;

实际用法就贴一下代码吧,直接粘贴就可以

    NSError *error = nil;
    NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber | NSTextCheckingTypeLink
                                                               error:&error];
    NSString *testStr = @"有一个网址:www.balabala.com有一个电话:13567827891"; // 网址电话是随意写的
    [detector enumerateMatchesInString:testStr
                               options:kNilOptions
                                 range:NSMakeRange(0, testStr.length)
                            usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
                                //NSTextCheckingResult有很多属性,和检测的类型相匹配,如URL,phoneNumber,date,addressComponents等等
                                //NSTextCheckingResult还有Range 和 NSTextCheckingType两个属性,方便进行操作
                                NSLog(@"result.range = %@",NSStringFromRange(result.range));
                                if (result.URL) {
                                    NSLog(@"url = %@",result.URL);
                                }
                                if (result.phoneNumber) {
                                    NSLog(@"phone = %@",result.phoneNumber);
                                }
                            }];

但是我发现,只要数字连续5位及以上,就会判断为电话号码,比如写个“33333”。所以和实际需求好像还是有些出入,如果要求不是很高的话,就可以省去写正则表达式的麻烦了。
对于判断URL,Date, AddressConponents等,这些类的合法性还是可以用的,毕竟我们也没有什么好方法。

可以结合我之前写的一篇UIlabel各种字体各种颜色拼接来实现Label,textView等的高亮显示。

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 当你渐行渐远的时候 我才找到想你的理由 窗外 满是纷飞的黄叶 如一只只蝶 坠落在这个凄清的秋 遥望 你来的方向...
    繁花落尽深眸阅读 234评论 13 5
  • 这本书讲到了很多的细节,让人们通过很多例子学会轻松的影响他人 本书不断强调的一条非常简单的道理:当你打算影响他人行...
    还一直在路上阅读 232评论 0 1