如何检测它是Web URL还是路径?检测路径中的URL
在NSURL苹果参考页面已经写的,它接受一个URL,如果它是基于标准的,但任何一种字符串,它接受一个URL,这样的代码:
NSURL *url=[NSURL URLWithString:@"/book.xml"];
NSLog(@"%@",url);
这不是一个网页网址,但它拥有它,也将其作为其价值返回。 我已经试过这个功能,它的工作原理,但不是所有的网址!
-(BOOL) urlIsValiad: (NSString *) url {
NSString *regex = @"((?:http|https)://(?:www\\.)?[\\w\\d\\-_]+\\.\\w{2,3}/?(?:[\\w\\d\\-./_]+)?)";
NSPredicate *regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([regextest evaluateWithObject: url] == YES) {
NSLog(@"It is a valid URL!");
} else {
NSLog(@"It is not valid URL!");
}
return [regextest evaluateWithObject:url];
}
我担心的是检测其他路径中的URL!
我编辑了我的帖子,我用了一些类似的东西,但即使它有一些例外情况不起作用。 – user1095058 2012-01-05 07:24:18
你确定NSDataDetector不起作用吗?我可能误解了,但NSDataDetector应该能够在一个长字符串中找到多个URL。 – 2012-01-05 07:30:14
不幸的是我不能使用它!因为我打算提供一个适用于OSX版本10.5的应用程序! – user1095058 2012-01-05 14:54:21