在我正在开发的iPhone应用程序中,有一个设置可以输入URL,因为形式和功能,此URL需要在线和离线验证.
到目前为止,我还没有找到任何验证网址的方法,所以问题是;
如何在线和离线验证iPhone(Objective-C)上的URL输入?
斯威夫特 5、Xcode 10、iOS 12
我的代码用于UIApplication.shared.canOpenURL验证 URL,不幸的是没有“http://”就失败了。
例子:
print(UIApplication.shared.canOpenURL(URL(string: "stackoverflow.com")!)) //false
print(UIApplication.shared.canOpenURL(URL(string: "http://stackoverflow.com")!)) //true
print(UIApplication.shared.canOpenURL(URL(string: "129.0.0.1")!)) //false
print(UIApplication.shared.canOpenURL(URL(string: "ftp://129.0.0.1")!)) //true
Run Code Online (Sandbox Code Playgroud)
我知道方案(iOS9+)的变化,我知道如果字符串尚未以“http://”开头,我可以添加前缀,然后检查这个新字符串,但我仍然想知道:
问题:我如何添加“没有方案”方案,以便像“stackoverflow.com”这样的有效 URL 也返回true(这是否可能?)?
我试图验证Swift 3中的URL,但我似乎无法找到适合我需要的正则表达式.我所追求的正则表达式需要接受以下组合:
http://google.com
http://google.com/foo/bar:30/35
https://google.com
https://google.com/foo/bar:30/35
www.google.com
google.com
Run Code Online (Sandbox Code Playgroud)