1. 自定义一个类ValidateUtil ----->>>ValidateUtil .h 文件
/**
限制手机号输入格式
*/
+ (BOOL)isMatchPhoneNumberFormat:(UITextField *)textField range:(NSRange)range string:(NSString *)string;
/**
验证邮箱格式
*/
+ ( BOOL )validateEmail:( NSString *)email;
/**
验证身份证号格式
*/
+ ( BOOL )validateIdentityCard: ( NSString *)identityCard;
/**
验证银行卡格式
*/
+ (BOOL)validateBankCardNumber:(NSString *)cardNumber;
2.----->>>ValidateUtil .m 文件
+(BOOL)isMatchPhoneNumberFormat:(UITextField *)textField range:(NSRange)range string:(NSString *)string{
if ([string isEqualToString:@"\n"]||[string isEqualToString:@""]) {//按下return
return YES;
}
if(![self validateByRegex:@"[0-9]+" withObject:string]){
return NO;
}
if (textField.text.length >=11) {
return NO;
}
return YES;}
//邮箱校验
+ (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];
}
//身份证校验
+ (BOOL)validateIdentityCard: (NSString *)identityCard{ BOOL flag; if (identityCard.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$"; NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [identityCardPredicate evaluateWithObject:identityCard];}
//银行卡校验
+(BOOL)validateBankCardNumber:(NSString *)cardNumber{ if(![self validateByRegex:@"^[0-9]*$" withObject:cardNumber]){ return NO; } return YES;}
3. 在使用的类里 textfield代理方法
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField == phoneField) {
return [ValidateUtil isMatchPhoneNumberFormat:textField range:range string:string];
}
return YES;
}
4.判断手机号格式 引入头文件----->>ValidateUtil .h 文件
if (![ValidateUtil validateMobile:phoneNumber]) {
NSLog(@"手机号格式错误");
return;
}
注释:银行卡,身份证,邮箱校验,和手机号校验方法相似,在对应的地方调用对应的类方法即可校验,屡试屡爽。