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

通过输入框获取字符串后,我们判断电话号码是否合法
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容