Objective-C用正则表达式判断字符串是否为手机号、邮箱、身份证号

来源:互联网 发布:rlcf pic单片机指令 编辑:程序博客网 时间:2024/05/23 00:06

用正则表达式判断字符串是否为手机号:

- (BOOL)isPhoneNumber:(NSString *)str {    NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";    NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";    NSString * CU = @"^1(3[0-2]|5[256]|8[156])\\d{8}$";    NSString * CT = @"^1((33|53|8|7[09])[0-9]|349)\\d{7}$";    NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];    NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];    NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];    NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];    BOOL res1 = [regextestmobile evaluateWithObject:str];    BOOL res2 = [regextestcm evaluateWithObject:str];    BOOL res3 = [regextestcu evaluateWithObject:str];    BOOL res4 = [regextestct evaluateWithObject:str];    if (res1 || res2 || res3 || res4 ) {        return YES;    } else {        return NO;    }}

用正则表达式判断字符串是否为邮箱:

- (BOOL)isEmail:(NSString *)str {    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];    return [emailTest evaluateWithObject:str];}

用正则表达式判断字符串是否为身份证号:

- (BOOL) isValidateIdentityCard: (NSString *)identityCard{    BOOL flag;    if (identityCard.length <= 0) {        flag = NO;        return flag;    }    NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$";    NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [identityCardPredicate evaluateWithObject:identityCard];}
0 0
原创粉丝点击