是否有任何API或良好的函数来格式化字符串 “www.example.com”或只是“example.com”来表示有效的urlstrings “http://www.example.com”?
+ (NSString*)complete:(NSString *)urlString
{
NSArray * urlParts = [urlString componentsSeparatedByString:@"."];
if(urlParts.count==3)
return [NSString stringWithFormat:@"http://www.%@.%@",[urlParts objectAtIndex:1],[urlParts objectAtIndex:2]];
else if(urlParts.count==2)
return [NSString stringWithFormat:@"http://www.%@.%@",[urlParts objectAtIndex:0],[urlParts objectAtIndex:1]];
return nil;
}
这就是目前的解决方案,但对我来说这看起来并不是很好。
答案 0 :(得分:4)
您可以使用NSDataDetector
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:NULL];
NSString *URLString = @"www.example.com";
NSTextCheckingResult *result = [detector firstMatchInString:URLString options:0 range:NSMakeRange(0, URLString.length)];
if (result) {
NSURL *URL = [result URL];
NSLog(@"%@", URL); // http://www.example.com
}
您不应该假设www
是任何给定域名的有效子域名。
如果您需要将结果作为字符串,则可以使用absoluteString
的{{1}}方法,但通常最好使用NSURL
代替NSURL
。