正则表达式(一)

来源:互联网 发布:ubuntu输入密码后卡住 编辑:程序博客网 时间:2024/06/10 01:15
  • 验证用户名
/** *  验证用户名 *  由字母、数字、_、-组成,不能以符号开始和结束 *  6~14 */ * (BOOL)checkInputUserName:(NSString *)text{    NSString *regular = @"^[a-zA-Z\\d][\\w-]{4,12}[0-9a-zA-Z]$";    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular];    return [predicate evaluateWithObject:text];}
  • 验证密码
/** *  验证密码 *  由字母、数字、_、-、~、!、@、#、$、%、^、&、*、+、,、.、?组成 *  6~16 */ * (BOOL)checkInputPassword:(NSString *)text{    NSString *regular = @"^[\\w!@#$%^&*+?,.~\\-]{6,16}$";    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular];    return [predicate evaluateWithObject:text];}
  • 只能输入汉字
/** *  只能输入汉字 */ * (BOOL)checkInputChinese:(NSString *)text{    NSString *regular = @"^[\u4e00-\u9fa5]*$";    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular];    return [predicate evaluateWithObject:text];}
  • 只能输入字母
/** *  只能输入字母 */ * (BOOL)checkInputLetter:(NSString *)text{    NSString *regular = @"^[a-zA-Z]*$";    return [self check:regular text:text];}
  • 只能输入数字
/** *  只能输入数字 */ * (BOOL)checkInputNumber:(NSString *)text{    NSString *regular = @"^[0-9]*$";    return [self check:regular text:text];}
  • 手机号码
/** *  手机号码 *中国移动号段:134、135、136、137、138、139、150、151、152、157、158、159、147、182、183、184、187、188、1705、178 中国联通号段:130、131、132、145(145属于联通无线上网卡号段)、155、156、185、186 、176、1709、 中国电信号段:133 、153 、180 、181 、189、1700、177 */ * (BOOL)checkInputPhoneNumber:(NSString *)text{    NSString *YDRegular = @"^1((3[4-9]|5[0-27-9]|47|8[23478]|78)\\d{8}|705\\d{7})$";    NSString *LTRegular = @"^1((3[0-2]|45|5[56]|8[56]|76)[0-9]|709)\\d{7}$";    NSString *DXRegular = @"^1((33|53|8[019]|77)[0-9]|700)\\d{7}$";    return [self check:YDRegular text:text] || [self check:LTRegular text:text] || [self check:DXRegular text:text];}
  • 身份证
/** *  身份证 */+ (BOOL)checkInputIdCard:(NSString *)text{    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    [formatter setDateFormat:@"yyyyMMdd HH:mm:ss"];    NSString *time = [formatter stringFromDate:[NSDate date]];    time = [time substringToIndex:8];    NSString *newText = [text substringWithRange:NSMakeRange(6, 8)];    if ([newText integerValue] > [time integerValue]) {        return NO;    }    if (text.length != 18) {        return NO;    }    BOOL isIdCard;    NSString *regular = @"^[1-9]\\d{5}(19[0-9]{2}|201[0-6])(0[1-9]|1[0-2])([0|1|2]\\d|(3[0-1]))(\\d{4}|\\d{3}[Xx])$";    if ([self check:regular text:text] && text.length == 18) {        NSArray *idCardWi = @[@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2"];        NSArray *idCardY = @[@"1",@"0",@"10",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2"];        NSInteger num = 0;        for (NSInteger index = 0; index < text.length - 1; index++) {            num += [[text substringWithRange:NSMakeRange(index, 1)] integerValue] * [idCardWi[index] integerValue];        }        num = num % 11;        if ([[text substringFromIndex:text.length - 1] isEqualToString:idCardY[num]]) {            isIdCard = YES;        }else{            isIdCard = NO;        }    }else{        isIdCard = NO;    }    return isIdCard;}
  • 座机号码
/* *  座机号码 */ * (BOOL)checkInputLandLine:(NSString *)text{    NSString *regular = @"^0\\d{2}(\\-\\d|\\d\\-)\\d{7}$";    return [self check:regular text:text];}
  • 邮箱
/* *  邮箱 */ * (BOOL)checkInputEmail:(NSString *)text{    NSString *regular = @"^[a-z0-9][a-z0-9_]{2,14}[a-z0-9]@[a-z0-9]+\\.(com|cn)$";    return [self check:regular text:text];}
  • 以上方法通用此方法
+ (BOOL)check:(NSString *)regular text:(NSString *)text{    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular];    return [predicate evaluateWithObject:text];}
0 0
原创粉丝点击