我如何检查NSURL是否有效? 1)如果我输入“facebook.com”,则应添加“http://www”。如何检查有效的网址?
2)如果我输入 “www.facebook.com”,那么就应该添加的 “http://”
3)如果我输入 “脸谱”,那么它应该在谷歌搜索。
我怎么能做到这一点?
我按照以下方法操作,但不起作用。它始终是第三种情况返回true。(“http://www.facebook”)
if (![url.absoluteString.lowercaseString hasPrefix:@"http://"])
{
if(![url.absoluteString.lowercaseString hasPrefix:@"www."])
{
url = [NSURL URLWithString:[@"http://www." stringByAppendingString:locationField.text]];
}
else
{
url = [NSURL URLWithString:[@"http://" stringByAppendingString:locationField.text]];
}
}
if(![self validateUrl:url.absoluteString])
{
url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com/search?q=%@",[locationField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
}
- (BOOL) validateUrl:(NSString *)candidate
{
NSString *urlRegEx = @"((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
return [urlTest evaluateWithObject:candidate];
}
添加的NSLog这个url.absoluteString,结果 – Walucas
您的逻辑是不正确粘贴。对于URL“facebook”,您最终将其更改为“http:// www.facebook”,然后对其进行验证。 – rmaddy
@Walucas nslog = absoluteString = http://www.facebook – Rox