我正在尝试使用此方法验证网址:
代码:
- (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];
}
它不起作用。我认为问题在于正则表达式。
答案 0 :(得分:13)
您可以使用NSURL
nil
方法,如果字符串格式错误,则返回if (URL && URL.scheme && URL.host)
。
使用{{1}}检查网址。
答案 1 :(得分:7)
试试这个..
- (BOOL) validateUrl: (NSString *) candidate {
NSString *urlRegEx =
@"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
return [urlTest evaluateWithObject:candidate];
}
它可能会帮助你。
答案 2 :(得分:1)
NSString *urlRegEx = @"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
答案 3 :(得分:0)
NSURL * url = [NSURL URLWithString:@“ http://www.google.com”];
BOOL isValid = [UIApplication.sharedApplication canOpenURL:url];