拨打电话的功能大家肯定都会用到,不多说,在此先附上代码:
+ (void)callTel:(NSString *)tel {
NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"telprompt://%@",tel];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
判断字符串是否为手机号
方法一:(未验证)
// 校验用户手机号码
+ (BOOL)validateUserPhone:(NSString *)str {
if (!str || [str isEqualToString:@""]) return NO;
NSRegularExpression *regularexpression = [[NSRegularExpression alloc] initWithPattern:@"^1[3|4|5|7|8][0-9][0-9]{8}$" options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger numberofMatch = [regularexpression numberOfMatchesInString:str options:NSMatchingReportProgress range:NSMakeRange(0, str.length)];
if(numberofMatch > 0) return YES;
return NO;
}
方法二:(较好)
+ (BOOL)isMobileNumber:(NSString *)mobileNum {
NSString * PHS = @"^1(3|5|7|8|4)\\d{9}";
NSPredicate * regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];
if ([regextestct evaluateWithObject:mobileNum]) return YES;
return NO;
}
方法三:(好像不太严谨)
+ (BOOL)isMobileNumber:(NSString *)mobileNum {
NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];
if (([regextestct evaluateWithObject:mobileNum] == YES)) return NO;
if (mobileNum.length == 11) return YES;
return NO;
}
有时候项目中我们需要保护客户隐私信息,即需要不完全显示用户的手机号码,例如隐藏用户手机号码的中间四位即可使用以下方法。
// 隐藏用户手机号码的中间四位
+ (NSString*)blurMobile:(NSString*)str {
if ([self validateUserPhone:str]) {
return [str stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"];
}
return nil;
}
如果你有更好的方法的话,欢迎交流🙂
网友评论