几种正则的表达

来源:互联网 发布:柏林战役 知乎 编辑:程序博客网 时间:2024/05/16 12:48

首先简单介绍一下正则表达式的基本写法及用法

\d 匹配任何一个数字,即[0-9]

\d+表示1个以上的数字

\d*标示0个或多个数字

\s 表示分隔符,包括空格、制表符和换行符

\s* 0个或多个分隔符

\w 表示字母、数字和下划线,这里还包括Unicode字符,不同的语言里有些不同

\w{4} 表示4个非空白字符

. 表示任何一个字符,不包括换行符

.* 表示任何多个字符,当然也不包括换行符了

^([0-9]) 表示数字开头

([0-9])$ 示数字结尾

([0-9A-Za-z]) 表示数字字母

| 表示或的关系,如\d|\w 示数字或字母

(.|[\r\n])* 表示任何多个字符,包括换行符,贪婪扫描

(.|[\r\n])*? 表示任何多个字符,包括换行符,懒惰扫描

(?:.|[\\r\\n])   以(?:开头时的分组信息,表示不读取到缓冲器里,避免rangeAtIndex调用时产生副作用,后面还会遇到这样的(?:写法


@implementation TSRegularExpressionUtil//邮箱+ (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]{4,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]{2,5})(&middot;[\u4e00-\u9fa5]{2,5})*";    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];}//银行卡+ (BOOL) validateBankCardNumber: (NSString *)bankCardNumber{    BOOL flag;    if (bankCardNumber.length <= 0) {        flag = NO;        return flag;    }    NSString *regex2 = @"^(\\d{15,30})";    NSPredicate *bankCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [bankCardPredicate evaluateWithObject:bankCardNumber];}//银行卡后四位+ (BOOL) validateBankCardLastNumber: (NSString *)bankCardNumber{    BOOL flag;    if (bankCardNumber.length != 4) {        flag = NO;        return flag;    }    NSString *regex2 = @"^(\\d{4})";    NSPredicate *bankCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [bankCardPredicate evaluateWithObject:bankCardNumber];}//CVN+ (BOOL) validateCVNCode: (NSString *)cvnCode{    BOOL flag;    if (cvnCode.length <= 0) {        flag = NO;        return flag;    }    NSString *regex2 = @"^(\\d{3})";    NSPredicate *cvnCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [cvnCodePredicate evaluateWithObject:cvnCode];}//month+ (BOOL) validateMonth: (NSString *)month{    BOOL flag;    if (!month.length == 2) {        flag = NO;        return flag;    }    NSString *regex2 = @"(^(0)([0-9])$)|(^(1)([0-2])$)";    NSPredicate *monthPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [monthPredicate evaluateWithObject:month];}//month+ (BOOL) validateYear: (NSString *)year{    BOOL flag;    if (!year.length == 2) {        flag = NO;        return flag;    }    NSString *regex2 = @"^([1-3])([0-9])$";    NSPredicate *yearPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [yearPredicate evaluateWithObject:year];}//verifyCode+ (BOOL) validateVerifyCode: (NSString *)verifyCode{    BOOL flag;    if (!verifyCode.length == 6) {        flag = NO;        return flag;    }    NSString *regex2 = @"^(\\d{6})";    NSPredicate *verifyCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [verifyCodePredicate evaluateWithObject:verifyCode];}@end



0 0
原创粉丝点击