Как проверить, содержит ли строка URL - PullRequest
0 голосов
/ 04 августа 2011

У меня есть текстовое сообщение, и я хочу проверить, содержит ли оно текст "http" или URL-адрес в нем.

Как я это проверю?

Ответы [ 3 ]

6 голосов
/ 04 августа 2011
NSString *string = @"xxx http://someaddress.com";
NSString *substring = @"http:";

Пример с учетом регистра:

NSRange textRange = [string rangeOfString:substring];

if(textRange.location != NSNotFound){
    //Does contain the substring
}else{
    //Does not contain the substring
}

Пример без учета регистра:

NSRange textRange = [[string lowercaseString] rangeOfString:[substring lowercaseString]];

if(textRange.location != NSNotFound){
    //Does contain the substring
}else{
    //Does not contain the substring
}
2 голосов
/ 04 августа 2011

@ Киприан предлагает хороший вариант.

Вы также можете рассмотреть возможность использования NSRegularExpression , которая даст вам гораздо большую гибкость, если вы захотите, например, то, что вам нужно, например. если вы хотите сопоставить http: // и https: //.

0 голосов
/ 10 октября 2017

В URL обычно указывается http или https

Вы можете использовать свой пользовательский метод containsString для проверки этих строк.

- (BOOL)containsString:(NSString *)string {
    return [self containsString:string caseSensitive:NO];
}
- (BOOL)containsString:(NSString*)string caseSensitive:(BOOL)caseSensitive {
    BOOL contains = NO;
    if (![NSString isNilOrEmpty:self] && ![NSString isNilOrEmpty:string]) {
        NSRange range;
        if (!caseSensitive) {
            range =  [self rangeOfString:string options:NSCaseInsensitiveSearch];
        } else {
            range =  [self rangeOfString:string];
        }
        contains = (range.location != NSNotFound);
    }

    return contains;
}

Пример:

[yourString containsString:@"http"]

[yourString containsString:@"https"] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...