iOS开发之常用正则表达式

作者: 朱晓晓的技术博客 | 来源:发表于2015-12-10 15:32 被阅读341次

    在开发用户登录模块的时候,往往需要对用户名和密码进行一个条件判断,如果每次手写就显得水平有些low了,代码重用性不高,最好的方式就是把代码抽取取出来.

    把以下代码抽取成一个.m文件,把方法名抽取成一个.h 文件,然后导入项目文件,在需要的地方进行类方法调用即可.

    //邮箱
    
    + (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) validateMobile:(NSString *)mobile
    
    {
    
    //手机号以13, 15,18开头,八个 \d 数字字符
    
    NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
    
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
    
    return [phoneTest evaluateWithObject:mobile];
    
    }
    
    //车牌号验证
    
    + (BOOL) validateCarNo:(NSString *)carNo
    
    {
    
    NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$";
    
    NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex];
    
    NSLog(@"carTest is %@",carTest);
    
    return [carTest evaluateWithObject:carNo];
    
    }
    
    //车型
    
    + (BOOL) validateCarType:(NSString *)CarType
    
    {
    
    NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$";
    
    NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex];
    
    return [carTest evaluateWithObject:CarType];
    
    }
    
    //用户名
    
    + (BOOL) validateUserName:(NSString *)name
    
    {
    
    NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$";
    
    NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex];
    
    BOOL B = [userNamePredicate evaluateWithObject:name];
    
    return B;
    
    }
    
    //密码
    
    + (BOOL) validatePassword:(NSString *)passWord
    
    {
    
    NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";
    
    NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
    
    return [passWordPredicate evaluateWithObject:passWord];
    
    }
    
    //昵称
    
    + (BOOL) validateNickname:(NSString *)nickname
    
    {
    
    NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$";
    
    NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex];
    
    return [passWordPredicate evaluateWithObject:nickname];
    
    }
    
    //身份证号
    
    + (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];
    
    }
    

    相关文章

      网友评论

        本文标题:iOS开发之常用正则表达式

        本文链接:https://www.haomeiwen.com/subject/ntlyhttx.html