常用正则表达式——银行卡号,2-6位中文名,手机号

来源:互联网 发布:淘宝的一元拍卖骗局 编辑:程序博客网 时间:2024/06/11 12:33

以下是常用正则表达式,已亲测,确定可用

手机号

- (BOOL)checkTelNumber:(NSString *)phone{    NSString *phoneRegex = @"1[3|5|7|8|][0-9]{9}";    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];    return [phoneTest evaluateWithObject:phone];}


2-6位中文名

- (BOOL)checkName:(NSString *)name{    NSString *phoneRegex = @"[\u4e00-\u9fa5]{2,6}";    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];    return [phoneTest evaluateWithObject:name];}


银行卡号(储蓄卡,信用卡)

<span style="font-family: Arial, Helvetica, sans-serif;">- (BOOL) checkCardNo:(NSString*) cardNo{</span>
    int oddsum = 0;     //奇数求和    int evensum = 0;    //偶数求和    int allsum = 0;    int cardNoLength = (int)[cardNo length];    int lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue];        cardNo = [cardNo substringToIndex:cardNoLength - 1];    for (int i = cardNoLength -1 ; i>=1;i--) {        NSString *tmpString = [cardNo substringWithRange:NSMakeRange(i-1, 1)];        int tmpVal = [tmpString intValue];        if (cardNoLength % 2 ==1 ) {            if((i % 2) == 0){                tmpVal *= 2;                if(tmpVal>=10)                    tmpVal -= 9;                evensum += tmpVal;            }else{                oddsum += tmpVal;            }        }else{            if((i % 2) == 1){                tmpVal *= 2;                if(tmpVal>=10)                    tmpVal -= 9;                evensum += tmpVal;            }else{                oddsum += tmpVal;            }        }    }        allsum = oddsum + evensum;    allsum += lastNum;    if((allsum % 10) == 0)        return YES;    else        return NO;}

0 0
原创粉丝点击