Sto cercando di convalidare un URL con questo metodo:URL Validation (Objective-C)
Codice:
- (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];
}
Non funziona. Penso che il problema sia con l'espressione regolare.
ho provato! ma ancora non funziona! per esempio "ht: //www.yahoo." questo funziona bene! e non restituisce nill !!! –
Questo è URl valido secondo RFC 2396. Dalla documentazione di apple La stringa con cui inizializzare l'oggetto NSURL. Deve essere un URL conforme a RFC 2396. Questo metodo analizza URLString in base alle RFC 1738 e 1808. utilizza "if (URL && URL.scheme && URL.host)" per controllare l'URL. –
RFC 2396 utilizza questo^(([^: /? #] +):)? (// ([^ /? #] *))? ([^? #] *) (\? ([^ #] *))? (# (. *))? espressione regolare. Per ulteriori informazioni, consultare http://www.ietf.org/rfc/rfc2396.txt –