在我正在开发的一个iPhone应用程序中,有一个设置可以让您输入URL,因为表单&函数需要在线和离线验证此URL.

到目前为止,我还没有找到任何方法来验证url,所以问题是;

如何在线和离线验证iPhone(Objective-C)上的URL输入?

推荐答案

Thanks to this post, you can avoid using RegexKit. Here is my solution (works for iphone development with iOS > 3.0) :

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

如果你想签入Swift,我的解决方案如下:

 func isValidUrl(url: String) -> Bool {
        let urlRegEx = "^(https?://)?(www\\.)?([-a-z0-9]{1,63}\\.)*?[a-z0-9][-a-z0-9]{0,61}[a-z0-9]\\.[a-z]{2,6}(/[-\\w@\\+\\.~#\\?&/=%]*)?$"
        let urlTest = NSPredicate(format:"SELF MATCHES %@", urlRegEx)
        let result = urlTest.evaluate(with: url)
        return result
    }

Ios相关问答推荐

两次调度Deliverc时未调用iOS GCD完成块

如何加密字符串使用AES. GCM在Dart和解密相同的Swift?

Nomb iOS 17.4.0中崩溃

如果条件不满足,S从@ViewBuilder返回什么?

自定义油漆圆角三角形

无法关闭包含字体 Select 器的工作表

Swift locationManager.requestWhenInUseAuthorization() 不提示用户

Flutter iOS 构建失败:DVTCoreDeviceEnabledState_Disabled

为什么 Swift 不在启动的同一线程上恢复异步函数?

SwiftUI - 如何从主题感知命名 colored颜色 中获取正确的 RGB 值?

AppCenter 错误:/usr/bin/xcodebuild 失败,返回码:65

错误:无法根据成员environmentObject推断上下文基础

SwiftUI:如何用拇指移动滑块值

构建失败:ld:重复符号 _OBJC_CLASS_$_Algebra5FirstViewController

如何动态计算 UILabel 高度?

NSPredicate 用于测试 NULL 和空白字符串

应用程序不包含正确的测试版权利

Xcode / iOS模拟器:手动触发重大位置更改

iOS应用程序每隔一次启动就会崩溃,找不到错误

找不到开发者磁盘映像