ios中验证IP地址有效的两种方法

来源:互联网 发布:java开发经验 编辑:程序博客网 时间:2024/05/21 09:52

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.csdn.net/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;}




原创粉丝点击