美文网首页IOS开发资料库iOS DeveloperiOS 开发
用正则简单地判断电话号码等是否合法

用正则简单地判断电话号码等是否合法

作者: 静花寒 | 来源:发表于2016-05-11 09:44 被阅读156次

通过输入框获取字符串后,我们判断电话号码是否合法
1.对NSString类进行扩展
2.写入方法,调用方便

@interface NSString (PhoneOrMail)
- (BOOL)isPhone;
- (BOOL)isMail;
- (BOOL)isOneOfPhoneAndMail;
@end
@implementation NSString (PhoneOrMail)
- (BOOL)isPhone{
    //手机号以13, 15,18开头,八个 \d 数字字符
    
//    NSString *phoneReg = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
    //NSString *phoneReg = @"^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
    NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[06-8])\\d{8}$";
    return [[NSPredicate predicateWithFormat:@"self matches %@",MOBILE] evaluateWithObject:self];
}

- (BOOL)isMail{
    NSString *mailReg = @"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
    return [[NSPredicate predicateWithFormat:@"self matches %@",mailReg] evaluateWithObject:self];
}

- (BOOL)isOneOfPhoneAndMail{
    if ([self rangeOfString:@"@"].location != NSNotFound) {
        return [self isMail];
    }else{
        return [self isPhone];
    }
}
@end

相关文章

网友评论

  • 酷酷的哀殿:判断手机号时,可以把‘空格’和‘-’移除。这样也可以判断`159 0000 0000` 这种格式的手机号。
    静花寒:@酷酷的哀殿 谢谢指点

本文标题: 用正则简单地判断电话号码等是否合法

本文链接:https://www.haomeiwen.com/subject/fmzyrttx.html