我试图验证这种方法的URL:URL验证(Objective-C的)
代码:
- (BOOL) validateUrl: (NSString *) candidate {
NSString *urlRegEx=
@"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
return [urlTest evaluateWithObject:candidate];
}
它不起作用。我认为问题出在正则表达式上。
我试了一下!但它仍然行不通!例如“ht://www.yahoo”。这个效果很好!它不会回来! –
根据RFC 2396,这是有效的URI。来自apple文档用于初始化NSURL对象的字符串。必须是符合RFC 2396的URL。此方法根据RFC 1738和1808解析URLString。使用“if(URL && URL.scheme && URL.host)”来检查URL。 –
RFC 2396使用^(([^:/?#] +):)?(//([^ /?#] *))?([^?#] *)(\?([^#]) *))?(#(。*))?正则表达式。欲了解更多信息,请参阅http://www.ietf.org/rfc/rfc2396.txt –