iOS开发-正则表达式之替换注释、手机号正则、邮箱正则、身份证号正则

最近新用到了一个正则:关于替换大量注释

/\*.*\*/



#pragma mark 验证手机号

- (BOOL)validateMobile:(NSString *)numPhone//验证是否是手机号

{

NSString *MOBILE = @"^1[34578]\\d{9}$";

NSPredicate *regexTestMobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",MOBILE];

return [regexTestMobile evaluateWithObject:numPhone];

}


#pragma mark 验证邮箱

- (BOOL)validateEmail:(NSString *)email//验证是否是邮箱

{

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:email];

}


#pragma mark - 身份证识别

@interface ViewController ()

{

NSString *_card_id;

}

_card_id = @"430422xxxx0816xxxx";

-(BOOL)checkIdentityCardNo:(NSString*)cardNo

{

if (cardNo.length != 18) {

NSLog(@"身份证号码必须为18位~");

return  NO;

}

NSArray* codeArray = [NSArray arrayWithObjects:@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2", nil];

NSDictionary* checkCodeDic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"0",@"X",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2", nil]  forKeys:[NSArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]];

NSScanner* scan = [NSScanner scannerWithString:[cardNo substringToIndex:17]];

int val;

BOOL isNum = [scan scanInt:&val] && [scan isAtEnd];

if (!isNum) {

NSLog(@"必须输入纯数字~");

return NO;

}

int sumValue = 0;

for (int i =0; i<17; i++) {

sumValue+=[[cardNo substringWithRange:NSMakeRange(i , 1) ] intValue]* [[codeArray objectAtIndex:i] intValue];

}

NSString* strlast = [checkCodeDic objectForKey:[NSString stringWithFormat:@"%d",sumValue%11]];

if ([strlast isEqualToString: [[cardNo substringWithRange:NSMakeRange(17, 1)]uppercaseString]]) {

NSLog(@"验证通过~");

return YES;

}

return  NO;

}

你可能感兴趣的:(iOS开发-正则表达式之替换注释、手机号正则、邮箱正则、身份证号正则)