在Cocoa应用程序中验证用户输入的URL的最佳方法是什么?

mcl*_*inj 4 regex validation url cocoa

我正在尝试建立一个自制网络浏览器,以便更加熟练地掌握Cocoa.我需要一种好方法来验证用户是否输入了有效的URL.我已经尝试了一些正则表达式,但NSString有一些有趣的怪癖,并且不喜欢我见过的大部分正则表达式的一些反向引用.

小智 5

您可以从+ (id)URLWithString:(NSString *)URLString方法开始,如果字符串格式错误NSURL,则返回nil.

如果您需要进一步的验证,您可以使用baseURL,host,parameterString,path,等方法给你的网址,然后你就可以在你认为合适的任何方式评估的特定组件.

  • 对于任何困惑的人:NSURL*myURL = [NSURL URLWithString:@"test"]; if(myURL){}是不够的,因为"test"是一个有效的URL.你可能想要添加用法:if(myURL && myURL.scheme && myURL.host){} (5认同)