美文网首页
常用正则表达式

常用正则表达式

作者: 默_f248 | 来源:发表于2019-01-09 16:50 被阅读0次

#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;

}

相关文章

  • 正则表达式与方法

    正则表达式---常用符号 正则表达式--常用函数 正则表达式--常用技巧 代码: 正则表达式的应用举例 1、使用f...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python---正则表达式

    常用正则表达式

  • iOS常用正则表达式(电话、QQ、邮箱等)

    常用正则表达式

  • 正则表达式

    常用正则表达式

  • 正则表达式

    什么是正则表达式?如何创建正则表达式正则表达式常用的方法字符串中的正则表达式常用的正则表达式假设用户需要在HTML...

  • 正则表达式

    用法。常用正则表达式。详细用法 //正则表达式:记录文本规则的代码 //常用的正则表达式的地方:登录,密码等格式的...

  • Python正则表达式

    一 . 正则表达式中常用的字符含义 二 . re模块中常用的功能函数 一 . 正则表达式中常用的字符含义 下...

  • 正则表达式速查表

    常用正则表达式实例:

  • python之正则表达式使用

    正则表达式中常用的字符含义 正则表达式中常用的函数 compile() 编译正则表达式模式,返回一个对象的模式。对...

网友评论

      本文标题:常用正则表达式

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