IOS开发中实用的正则表达式

来源:互联网 发布:开普勒第一定律知乎 编辑:程序博客网 时间:2024/06/05 21:50

正则表达式又称正规表示法常规表示法英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。

这里介绍的正则表达式有:邮箱号验证;手机号验证;身份证验证;汽车牌号验证;用户名验证;密码验证;昵称验证。

Manager.h文件


#import <Foundation/Foundation.h>

@interface Manager : NSObject

//验证邮箱
+ (BOOL)validateEmail:(NSString *)email;

//验证手机
+ (BOOL)validateMobile:(NSString *)mobile;

//验证汽车
+ (BOOL)validateCarNo:(NSString *)carNo;

//验证用户名
+ (BOOL)validateUserName:(NSString *)name;

//验证密码
+ (BOOL)validatePassword:(NSString *)passWord;

//验证昵称

+ (BOOL)validateNickname:(NSString *)nickname;

//验证身份证
+ (BOOL)validateIdentityCard: (NSString *)identityCard;

@end

Manager.m文件

#import "Manager.h"


@implementation Manager

//邮箱验证

+ (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 1518开头,八个 \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];

}



@end


0 0