1. 程式人生 > >常用正則表示式——銀行卡號,2-6位中文名,手機號

常用正則表示式——銀行卡號,2-6位中文名,手機號

以下是常用正則表示式,已親測,確定可用

手機號

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