常用正则表达式

#pragma mark - 身份证号

+ (BOOL) IsIdentityCard:(NSString *)IDCardNumber

{

    if (IDCardNumber.length <= 0) {

        return NO;

    }

    //大陆身份证

//    NSString *regexMainland = @"^(\\d{14}|\\d{17})(\\d|[xX])$";

    NSString *regexMainland = @"(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)";

    NSPredicate *idCardPredicate_Mainland = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regexMainland];

    BOOL mainLand = [idCardPredicate_Mainland evaluateWithObject:IDCardNumber];


    //香港永久居民身份证

    NSString *regexHongKongPermanent = @"^[A-Z][0-9]{8,12}$";

    NSPredicate *idCardPredicate_HongKongPermanent = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regexHongKongPermanent];

    BOOL HongKongPermanent = [idCardPredicate_HongKongPermanent evaluateWithObject:IDCardNumber];


    //香港居民身份证

    NSString *regexHongKong = @"^[A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?$";

    NSPredicate *idCardPredicate_HongKong = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regexHongKong];

    BOOL HongKong = [idCardPredicate_HongKong evaluateWithObject:IDCardNumber];


    //澳门身份证

    NSString *regexMacau = @"[157][0-9]{6}\\([0-9]\\)";

    NSPredicate *idCardPredicate_Macau = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regexMacau];

    BOOL Macau = [idCardPredicate_Macau evaluateWithObject:IDCardNumber];


    //台湾身份证

    NSString *regexTaiwan = @"^[A-KM-QT-XZ]{1}[0-9]{9}$";

    NSPredicate *idCardPredicate_Taiwan = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regexTaiwan];

    BOOL Taiwan = [idCardPredicate_Taiwan evaluateWithObject:IDCardNumber];

    if (mainLand == NO && HongKongPermanent == NO && HongKong == NO && Macau == NO && Taiwan == NO) {

        return NO;

    }else{

        return YES;

    }

}

#pragma mark - 手机号码

+ (BOOL) IsPhoneNumber:(NSString *)number

{

    NSString *phoneRegex1=@"1[34578]([0-9]){9}";

    NSPredicate *phoneTest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex1];

    return  [phoneTest1 evaluateWithObject:number];

}

#pragma mark - 邮箱

+ (BOOL) IsEmailAdress:(NSString *)Email

{

    NSString *emailCheck = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailCheck];

    return [emailTest evaluateWithObject:Email];

}

#pragma mark - 银行卡

+ (BOOL) IsBankCard:(NSString *)cardNumber

{

    if(cardNumber.length==0)

    {

        return NO;

    }

    NSString *digitsOnly = @"";

    char c;

    for (int i = 0; i < cardNumber.length; i++)

    {

        c = [cardNumber characterAtIndex:i];

        if (isdigit(c))

        {

            digitsOnly =[digitsOnly stringByAppendingFormat:@"%c",c];

        }

    }

    int sum = 0;

    int digit = 0;

    int addend = 0;

    BOOL timesTwo = false;

    for (NSInteger i = digitsOnly.length - 1; i >= 0; i--)

    {

        digit = [digitsOnly characterAtIndex:i] - '0';

        if (timesTwo)

        {

            addend = digit * 2;

            if (addend > 9) {

                addend -= 9;

            }

        }

        else {

            addend = digit;

        }

        sum += addend;

        timesTwo = !timesTwo;

    }

    int modulus = sum % 10;

    return modulus == 0;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘自http://blog.csdn.net/xlawszero/article/details/52053184...
    RunnerFL阅读 562评论 0 0
  • iOS常用正则表达式 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之...
    Flonger阅读 2,474评论 0 0
  • #pragma 正则匹配手机号 + (BOOL)checkTelNumber:(NSString*) telNum...
    冷月花阅读 444评论 0 0
  • 1.验证用户名和密码:”^[a-zA-Z]\w{5,15}$” 2.验证电话号码:(”^([\\d{3,4}-)...
    iOS学末阅读 1,983评论 0 4
  • 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正...
    Big_black阅读 909评论 0 1