首页 > 学院 > 开发设计 > 正文

正则表达式

2019-11-06 09:59:30
字体:
来源:转载
供稿:网友
ios 正则表达式之验证手机号、邮箱、身份证、银行卡

1、手机号

123456+ (BOOL) IsPhoneNumber:(NSString *)number{    NSString *phoneRegex1=@"1[34578]([0-9]){9}";    NSPRedicate *phoneTest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex1];    return  [phoneTest1 evaluateWithObject:number];}

 2、邮箱

123456+ (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];}

 3、身份证

123456789+ (BOOL) IsIdentityCard:(NSString *)IDCardNumber{    if (IDCardNumber.length <= 0) {        return NO;    }    NSString *regex2 = @"^(//d{14}|//d{17})(//d|[xX])$";    NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];    return [identityCardPredicate evaluateWithObject:IDCardNumber];}

 4、银行卡

123456789101112131415161718192021222324252627282930313233343536373839+ (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;}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表