2011-06-02 47 views
0

我试图使用正则表达式验证URL链接,但并非所有链接都被完全识别。你能帮我解决吗?验证iPhone上的URL

我想要的链接,遵循的模式:

http://www.abcdef.org/xyz/content.aspx?menu id=190&id=3214 
+2

定义'验证'。换句话说,你是否只是想确保目标是合法的URI还是符合特定的模式?并且为了记录,您提供的示例URI不合法,因为它包含未转义的空间。 – 2011-06-02 20:22:20

+0

嘿,对不起menu_id。和url验证应该接受所有模式 – RKK 2011-06-21 19:29:33

回答

1

假设你正在寻找一个正则表达式来与特定的模式相匹配的网址:

您可以使用这样的匹配http://www.abcdef.org/xyz/content.aspx?menu id=190&id=3214

http://.*?/[a-zA-z]+/content.aspx\?menu id=\d+?&id=\d+ 
+0

thanx为您的答复,但你能告诉我如何去更通用的模式,它可以识别任何模式的网址。 – RKK 2011-06-21 19:28:48

0

Regex for url with port in Objective c

如果没有端口号,效果很好。

-(BOOL) validateUrl: (NSString *) candidate { 

NSString *urlRegEx = @"^(http|https|ftp)\://(([a-zA-Z0-9-.]+\.[a-zA-Z]{2,3})|([0-2]*\d*\d\.[0-2]*\d*\d\.[0-2]*\d*\d\.[0-2]*\d*\d))(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9-._\?\,\'/\+&%\$#\=~])*[^.\,)(\s]$"; 
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx]; 
return [urlTest evaluateWithObject:candidate]; 
}