如何检查字符串是 Google 搜索还是 URL?

How to check if a string is a Google search or a URL?

我正在制作一个与任何其他网络浏览器一样工作的网络浏览器。

解决此问题的最佳方法是什么?我是否应该只对是否有一个点“.”做几个 if 语句?有没有?

我使用此代码(NSString 上的一个类别)来检查字符串是否有效 URL:

- (BOOL) isValidURLString
{
    BOOL result = NO;

    if (!self.length)
        return result;

    NSError *error = NULL;
    NSDataDetector *urlDetector = [NSDataDetector dataDetectorWithTypes: NSTextCheckingTypeLink error: &error];
    NSUInteger numberOfMatches = [urlDetector numberOfMatchesInString: self
                                                              options: 0
                                                                range: NSMakeRange(0, self.length)];

    if (!error && numberOfMatches > 0)
        result = YES;

    return result;
}

您可以尝试 regex,如:

- (BOOL)isValidURL:(NSString *)candidate{

    NSString *urlRegEx = @"(http|https)://((\w)*|([0-9]*)|([-|_])*)+([\.|/]((\w)*|([0-9]*)|([-|_])*))+";

    NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];

    return [urlTest evaluateWithObject:candidate];
}