iphone - Objective c 中带有端口的 url 的正则表达式

标签 iphone objective-c xcode url

这是我正在使用的代码,它验证了我提供的 99% 的 url,但是当 URL 中的 IP 地址后面有一个“:port”时它失败了。

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


//NSString *urlRegEx=@"(http|https)://(((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+)|(";
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];

感谢您的帮助!

最佳答案

为什么不使用 NSURL?尝试使用 URLWithString: 创建一个 URL,如果它返回 nil,则您的 URL 格式不正确。如果没有返回nil,那么可以查看主机、端口等。

关于iphone - Objective c 中带有端口的 url 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5225667/

相关文章:

iPhone/iPad 前置摄像头 FOV

objective-c - 更改 UIFontTextStyleHeadline 的默认字体

ios - 无法在uidatepicker中设置最短日期

objective-c - 未知日志 wx=wy=rx=ry=ios

iphone - 获取 iPhone 运营商接收状态? (不是互联网)

ios - Swift - 闭包中不包含匿名闭包参数

iphone - 删除给定 NSRange 的子字符串

ios - Swift:UIButton 自定义

iphone - 设置 UIPopoverController 的 "title"?

objective-c - 从NSDictionary打印具有JSON对象的标签文本