转载

iOS邮箱、手机、座机号码判断及调用

一、导入#import框架

二、添加MFMessageComposeViewControllerDelegate,MFMailComposeViewControllerDelegate代理

三、方法实现

-(void)number:(NSString *)numberStr {
if ([self isEmailNumber:numberStr]) {
    NSLog(@"邮箱");
    [[UIApplication sharedApplication]openURL:[NSURL  URLWithString:[NSString stringWithFormat:@"mailto:%@",numberStr]]];
}else if ([self isTelPhoneNumber:numberStr]){
    NSLog(@"座机");
    NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",numberStr];
    UIWebView * callWebview = [[UIWebView alloc] init];
    [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
    [self.view addSubview:callWebview];
    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:numberStr]];
}else if ([self isMobileNumber:numberStr]){
    NSLog(@"手机");
    UIAlertController *alertController=[UIAlertController alertControllerWithTitle:@"" message:nil preferredStyle:UIAlertControllerStyleActionSheet];
    UIAlertAction *cancleAction=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){   
    }];
    UIAlertAction *palyTelephone=[UIAlertAction actionWithTitle:@"打电话" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
        NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",numberStr];
        UIWebView * callWebview = [[UIWebView alloc] init];
        [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
        [self.view addSubview:callWebview];
        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:numberStr]];
    }];
    UIAlertAction *setMessage=[UIAlertAction actionWithTitle:@"发短信" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
        MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];
        vc.recipients = @[[NSString stringWithFormat:@"%@",numberStr]];
        // 设置代理
        vc.messageComposeDelegate = self;
        // 以modal的方式跳转到发送短信的控制器
        [self presentViewController:vc animated:YES completion:nil];
    }];
    [alertController addAction:palyTelephone];
    [alertController addAction:setMessage];
    [alertController addAction:cancleAction];
    [self presentViewController:alertController animated:YES completion:^{}];
}else{
}
}

pragma mark - 是否座机号??

(BOOL)isTelPhoneNumber:(NSString *)mobileNum{
//验证输入的固话中带 "-"符号
NSString * strNum = @"^(0/d{2,3}-?/d{7,8}$)";
NSPredicate *checktest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strNum];
BOOL isPhene = [checktest evaluateWithObject:mobileNum];
NSString * strNum1 = @"^(/d{7,8}$)";
NSPredicate *checktest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strNum1];
BOOL isPhene1 = [checktest1 evaluateWithObject:mobileNum];
if (isPhene || isPhene1) {
return YES;
}
return NO;
}

pragma mark - 是否是手机号??

(BOOL)isMobileNumber:(NSString )mobileNum
{
if (mobileNum.length != 11)
{
return NO;
}
/*
手机号码:
13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]
移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
联通号段: 130,131,132,155,156,185,186,145,176,1709
电信号段: 133,153,180,181,189,177,1700
/
NSString MOBILE = @"^1((3[0-9]|4[57]|5[0-35-9]|7[0678]|8[0-9])/d{8}$)";
/
中国移动:China Mobile
134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
/
NSString CM = @"(1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])/d{8}$)|(1705/d{7}$)";
/
中国联通:China Unicom
130,131,132,155,156,185,186,145,176,1709
/
NSString CU = @"(1(3[0-2]|4[5]|5[56]|7[6]|8[56])/d{8}$)|(1709/d{7}$)";
/
中国电信:China Telecom
133,153,180,181,189,177,1700
*/
NSString *CT = @"(1(33|53|77|8[019])/d{8}$)|(1700/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];
if (([regextestmobile evaluateWithObject:mobileNum] == YES)
|| ([regextestcm evaluateWithObject:mobileNum] == YES)
|| ([regextestct evaluateWithObject:mobileNum] == YES)
|| ([regextestcu evaluateWithObject:mobileNum] == YES))
{
return YES;
}
else
{
return NO;
}
}
(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
// 关闭短信界面
[controller dismissViewControllerAnimated:YES completion:nil];
if (result == MessageComposeResultCancelled) {
NSLog(@"取消发送");
} else if (result == MessageComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
正文到此结束
Loading...