textfield只能输入数字,(登录、注册电话号码的格式判断)等正则表达

来源:互联网 发布:windows的最新版本 编辑:程序博客网 时间:2024/06/11 04:09
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 ([stringisEqualToString:@"\n"]||[stringisEqualToString:@""]) {//按下return
        returnYES;
    }
    if(![selfvalidateByRegex:@"[0-9]+"withObject:string]){
        returnNO;
    }
    if (textField.text.length >=11) {
        returnNO;
    }
    return YES;

}

//邮箱校验

+ (BOOL)validateEmail:(NSString *)email{    NSString *emailRegex =@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";    NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegex];    return [emailTestevaluateWithObject: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 = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",regex2];    return [identityCardPredicateevaluateWithObject:identityCard];}


//银行卡校验

+(BOOL)validateBankCardNumber:(NSString *)cardNumber{    if(![selfvalidateByRegex:@"^[0-9]*$"withObject:cardNumber]){        returnNO;    }    returnYES;}


3. 在使用的类里 textfield代理方法

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if (textField ==phoneField) {

        return [ValidateUtilisMatchPhoneNumberFormat:textFieldrange:range string:string];

    }

    returnYES;

}

4.判断手机号格式 引入头文件----->>ValidateUtil .h 文件

if (![ValidateUtilvalidateMobile:phoneNumber]) {
NSLog(@"手机号格式错误");
     return;
 }

注释:银行卡,身份证,邮箱校验,和手机号校验方法相似,在对应的地方调用对应的类方法即可校验,屡试屡爽。



1 0