使用高级URL字符串验证URL

时间:2014-07-11 08:08:11

标签: objective-c

在接受提交之前,使用验证网址的应用。

以下代码接受简单的网址,例如www.google.com,但不值得使用更复杂的网址,例如www.google.com/?test-test

- (BOOL) validateUrl: (NSString *) candidate {
    NSString *urlRegEx =
    @"((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
    NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
    return [urlTest evaluateWithObject:candidate];
}

1 个答案:

答案 0 :(得分:0)

引自Apple documentation

  

返回值使用URLString初始化的NSURL对象。如果是URL   字符串格式错误或为零,返回nil。

您可以通过实际尝试制作NSURL对象来测试网址的有效性。

NSString* some_url1 = ...// your input
NSURL* u1 = [NSURL URLWithString:some_url1];
BOOL ok = u1 != nil;