2015-07-16 2 views
1

У меня есть строка, как ниже формат,Как отделить номер телефона и конференц-кода из строки

Позвоните в звонок бесплатный номер: 180(Индия)

вызова в номер: + 44- (0) 123456789 (United Kingdom)

UK бесплатный: 12345678910

https://www.google.com/

совещается ENCE Код: 123 456 56789

Как я могу отделить номера телефона из этой строки в Objective-C

ответ

3

Вы можете использовать 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 

ex.

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]; 
    } 
} 
+0

Я получил номер телефона с помощью кода, спасибо. Но я не мог отделить код конференции. Как получить его с помощью NSDataDetector. –

+0

для кода конференции вы можете использовать регулярное выражение. Если формат всегда один и тот же, вы можете просто использовать '\ d {3} \ d {3} \ d {5}' в качестве регулярного выражения и использовать класс 'NSRegularExpression'. –

0

Проверить этот код из другого потока очень похож на ваш вопрос: https://stackoverflow.com/a/20230333/1658831

+0

Это ** не ** ответ, это комментарий -1 – Popeye

+0

Я получил номер телефона, используя код, Спасибо. Но я не мог отделить код конференции. Как получить его с помощью NSDataDetector. –

Смежные вопросы