http://www.mkyong.com/regular-expressions/how-to-validate-ip-address-with-regular-expression/(java正则式)
http://stackoverflow.com/questions/5154545/iphone-sdk-how-to-check-if-ip-entered-by-user-is-valid (URL验证)
在IOS中利用正则式则可以验证输入。下面是参考上面文章中java的正则式和URL验证写的。
有两种方法可以使用,希望能给其它需要的人一点参考。
一:利用NSPredicate
+ (BOOL)isValidatIP:(NSString *)ipAddress{
NSString *urlRegEx =@"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
return [urlTest evaluateWithObject:ipAddress];
}
IP address that match:
1. “1.1.1.1″,
“255.255.255.255″,
”192.168.1.1″ ,
2. “10.10.1.1″,
“132.254.111.10″,
“26.10.2.10″,
3. “127.0.0.1″
IP address that doesn’t match:
1. “10.10.10″ – must have 4 “.”
2. “10.10″ – must have 4 “.”
3. “10″ – must have 4 “.”
4. “a.a.a.a” – only digit is allow
5. “10.0.0.a” – only digit is allow
6. “10.10.10.256″ – digit must between [0-255]
7. “222.222.2.999″ – digit must between [0-255]
8. “999.10.10.20″ – digit must between [0-255]
9. “2222.22.22.22″ – digit must between [0-255]
10. “22.2222.22.2″ – digit must between [0-255]
正则式判断有很多,没有一一验证,如果有需要,可参考下面文章中的正则式
http://blog.youkuaiyun.com/lioncredo/article/details/7628369
二 利用NSRegularExpression和NStextCheckingResult (下面用了别的网页代码,忘了出处了...)
+ (BOOL)isValidatIP:(NSString *)ipAddress{
NSString *urlRegEx =@"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\."
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:urlRegEx options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch=[regex firstMatchInString:ipAddress options:0 range:NSMakeRange(0, [ipAddress length])];
if (firstMatch) {
NSRange resultRange = [firstMatch rangeAtIndex:0];
NSString *result=[ipAddress substringWithRange:resultRange];
//输出结果
NSLog(@"%@",result);
return YES;
}
}
return NO;
}