【问题标题】:How to separate Phone number and Conference Code from String [duplicate]如何从字符串中分离电话号码和会议代码[重复]
【发布时间】:2015-10-05 12:27:15
【问题描述】:

我有一个类似下面格式的字符串,

拨打免费电话:180012345678(印度)

来电号码:+44-(0)123456789(英国)

英国免费电话:12345678910

https://www.google.com/

会议代码:123 456 56789

如何在 Objective-C 中将电话号码与此字符串分开

【问题讨论】:

    标签: objective-c xcode string ios8 nsdatadetector


    【解决方案1】:

    您可以使用 NSDataDetector (https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSDataDetector_Class/)

    支持以下类型:

    NSTextCheckingTypeOrthography        = 1ULL << 0,
    NSTextCheckingTypeSpelling           = 1ULL << 1,
    NSTextCheckingTypeGrammar            = 1ULL << 2,
    NSTextCheckingTypeDate               = 1ULL << 3,
    NSTextCheckingTypeAddress            = 1ULL << 4,
    NSTextCheckingTypeLink               = 1ULL << 5,
    NSTextCheckingTypeQuote              = 1ULL << 6,
    NSTextCheckingTypeDash               = 1ULL << 7,
    NSTextCheckingTypeReplacement        = 1ULL << 8,
    NSTextCheckingTypeCorrection         = 1ULL << 9,
    NSTextCheckingTypeRegularExpression  = 1ULL << 10
    NSTextCheckingTypePhoneNumber        = 1ULL << 11,
    NSTextCheckingTypeTransitInformation = 1ULL << 12
    

    例如

    NSError *error = NULL;
    NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber error:&error];
    
    NSUInteger numberOfMatches = [detector numberOfMatchesInString:string options:0 range:NSMakeRange(0, [string length])];
    
    NSArray *matches = [detector matchesInString: stringoptions:0 range:NSMakeRange(0, [string length])];
    
    for (NSTextCheckingResult *match in matches) {
        NSRange matchRange = [match range];
        if ([match resultType] == NSTextCheckingTypePhoneNumber) {
            NSString *phoneNumber = [match phoneNumber];
        }
    }
    

    【讨论】:

    • 我通过使用代码获得了电话号码,谢谢。但是,我无法分离会议代码。如何使用 NSDataDetector 获取。
    • 对于会议代码,您可以使用正则表达式。如果格式始终相同,您可以简单地使用 \d{3} \d{3} \d{5} 作为正则表达式并使用 NSRegularExpression 类。
    【解决方案2】:

    从与您的问题非常相似的另一个线程检查此代码:https://stackoverflow.com/a/20230333/1658831

    【讨论】:

    • 不是答案是评论-1
    • 我通过使用代码获得了电话号码,谢谢。但是,我无法分离会议代码。如何使用 NSDataDetector 获取。
    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2019-11-03
    • 2014-03-26
    相关资源
    最近更新 更多