【发布时间】:2016-02-07 04:50:53
【问题描述】:
希望你们一切都好。我正在构建一个 IOS 应用程序,如果用户在文本字段中键入私有/本地 IP 地址,我会在该应用程序中警告用户。 我在互联网上搜索并发现它是在 Android 应用程序中使用正则表达式完成的: Java: (127.0.0.1)|(192.168.$) | (172.1[6-9].$) | (172.2[0-9].$) | (172.3[0-1].$) | (10.*$)
我想要 IOS 应用程序使用相同的正则表达式,但我不知道如何编写代码。 我在网上搜索并发现 Private IP Address Identifier in Regular Expression 但我无法理解。我只知道一些objective-c。请有人在这方面帮助我。
好吧,伙计们,我想我已经通过以下代码解决了这个问题。
-(void)CheckIP
{
NSError *error = NULL;
NSString *pattern = @"(127.0.0.1)|(192.168.$)|(172.1[6-9].$)|(172.2[0-9].$)|(172.3[0-1].$)|(10.*$)"; // "[a-zA-Z]+[,]\\s*([A-Z]{2})";
NSString *string = self.tfExternalHost.text;
NSRange range = NSMakeRange(0, string.length);
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSArray *matches = [regex matchesInString:string options:NSMatchingProgress range:range];
NSLog(@" Found Match %@", matches);
}
如果上面的代码可以改进,建议我。
【问题讨论】:
-
你有正则表达式。对
NSRegularExpression类做一些研究。 -
您好,请参阅此链接到您的参考stackoverflow.com/a/10971521/2910061
-
感谢大家的回复。让我试试,然后我会通知你。
-
亲爱的@ilesh,感谢您的回复。您提供的参考用于使用正则表达式验证 IP 地址。我需要一个可以检查 ip 地址不是私有或本地 IP 的代码。你能在这方面帮助我吗?
标签: ios objective-c regex nsregularexpression