Цель-C: Как я могу обнаружить URL-адреса http в строке? - PullRequest
7 голосов
/ 10 августа 2011

Давайте предположим, что у меня есть строка:

"I love visiting http://www.google.com"

Как я могу обнаружить токен, http://www.google.com?

Ответы [ 2 ]

26 голосов
/ 10 августа 2011

Вы можете использовать NSDataDetectors Они были добавлены в iOS4 и весьма полезны.Вы хотите создать детектор данных с NSTextCheckingTypeLink и позволить ему делать свое дело.

NSString *testString = @"Hello http://google.com world";
NSDataDetector *detect = [[NSDataDetector alloc] initWithTypes:NSTextCheckingTypeLink error:nil];
NSArray *matches = [detect matchesInString:testString options:0 range:NSMakeRange(0, [testString length])];
NSLog(@"%@", matches);
1 голос
/ 10 августа 2011

Вы можете сделать что-то вроде:

-(BOOL)textIsUrl:(NSString*)someString {
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES ^[-a-zA-Z0-9@:%_\\+.~#?&//=]{2,256}\\.[a-z]{2,4}\\b(\\/[-a-zA-Z0-9@:%_\\+.~#?&//=]*)?$"];

    [predicate evaluateWithObject:someString];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...