判断银行账号是否输入正确

来源:互联网 发布:ubuntu python怎么用 编辑:程序博客网 时间:2024/06/07 10:06
- (void)viewDidLoad {    [super viewDidLoad];    NSString *str = @"6226820011200783033";    BOOL isRight = [self checkCardNo:str];    if (!isRight) {                UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"不对" message:@"请重新输入卡号" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];        [alert show];    }else{        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"对" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];        [alert show];}}


//这就是判断方法   

- (BOOL) checkCardNo:(NSString*) cardNo{    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;}

以上内容转自:http://blog.csdn.net/lixianyue1991/article/details/44938309

下面是stackoverflow上的,

参考 :http://stackoverflow.com/questions/72768/how-do-you-detect-credit-card-type-based-on-number


0 0