iOS - 手机号/邮箱/车牌号格式判断

对于需要注册的APP而言,可能很多时候需要用到邮箱和手机号进行注册,也许会在客户端就对用户输入的号码进行判断,因此我也把项目中的验证过程写了下来,希望帮得到.

返回值设置为int类型,是因为手机号可能分为大陆,香港,以及国外号码,如果使用的运营商支持其他号码的短信发送,也可添加进行判断,目前因为百度短信验证只支持大陆手机号验证,所以判断方式返回值设置为1.

//大陆手机号

- (int)isPhone {

   int num =0;

    NSString *mobileType =@"^1[1-9][0-9]\\d{8}$";

    NSPredicate *checkMobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",mobileType];

   if ([checkMobile evaluateWithObject:self]) {

        num =1;

    }

   return num;

}

//邮箱号

- (int)isEmail {

   int num =0;

    NSString *emailType =@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

    NSPredicate *checkEmail = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",emailType];

   if ([checkEmail evaluateWithObject:self]) {

       //格式正确

        num =1;

    }

   return num;

}

对于车牌号的判断,{4,5}后的判断字符代表可能为港车车牌,如果是数字或字母,则为大陆车牌,如果是汉字,则为两地牌,对于其他类型,弄清楚其格式,写出对应的正则判断表达式即可.

//大陆车牌

- (int)isPlate {

   int num =0;

    NSString *plateType = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4,5}[a-zA-Z_0-9_\u4e00-\u9fa5]$";

    NSPredicate *checkPlate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",plateType];

   if ([checkPlate evaluateWithObject:self]) {

        num =1;

    }

   return num;

}

你可能感兴趣的:(iOS - 手机号/邮箱/车牌号格式判断)