验证手机号的有效性
概述
验证手机号的有效性,必须11位,数字1开头。
通过正则表达式来判断。
下文中用到的正则表达式字符串为 "^((1[34578]))\\d{9}$"
Code
源码下载地址,源码中包含各种字符串(手机号、邮箱、中文名、身份证号等)校验方法
+ (BOOL) checkEmptyString:(NSString *) string {
if (string == nil) return string == nil;
NSString *newStr = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
return [newStr isEqualToString:@""];
}
/**
判断是否是有效的手机号
@param mobileNo 手机号码
@return 如果是有效的手机号,返回`YES` 否则返回`NO`
*/
+ (BOOL) isVaildMobileNo:(NSString *)mobileNo
{
if ([MMCheckTool checkEmptyString:mobileNo]) return NO;
NSString *phoneRegex = @"^((1[34578]))\\d{9}$";
NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
return [phoneTest evaluateWithObject:mobileNo];
}
Test
//手机号
{
BOOL a = [MMCheckTool isVaildMobileNo:@"15121178175"];
BOOL b = [MMCheckTool isVaildMobileNo:@"151211781755"];
BOOL c = [MMCheckTool isVaildMobileNo:@"1512117817"];
BOOL d = [MMCheckTool isVaildMobileNo:@"1234-+_+"];
BOOL e = [MMCheckTool isVaildMobileNo:@"qwertyuiopq"];
BOOL f = [MMCheckTool isVaildMobileNo:@""];
BOOL g = [MMCheckTool isVaildMobileNo:nil];
NSLog(@"手机号=====》%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //打印结果为 1000000
}