我試圖驗證這種方法的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 –