如何检查字符串是 Google 搜索还是 URL?
How to check if a string is a Google search or a URL?
我正在制作一个与任何其他网络浏览器一样工作的网络浏览器。
如果您键入自由格式的文本:"vasdfygvaosfh" 它将进行 Google 搜索。
如果您键入具有 URL 结构的文本:"abc.com" 它将打开一个新页面。
解决此问题的最佳方法是什么?我是否应该只对是否有一个点“.”做几个 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];
}
我正在制作一个与任何其他网络浏览器一样工作的网络浏览器。
如果您键入自由格式的文本:"vasdfygvaosfh" 它将进行 Google 搜索。
如果您键入具有 URL 结构的文本:"abc.com" 它将打开一个新页面。
解决此问题的最佳方法是什么?我是否应该只对是否有一个点“.”做几个 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];
}