iOS判断银行卡号是否正确a

https://www.jianshu.com/p/3e6539cccc5e

2017.09.07 15:33* 字数 187 阅读 109评论 0

废话不多说,直接上代码

 
检查银行卡号是否正确

源码如下:

- (BOOL)checkCardNo:(NSString*)cardNo{

if (cardNo.length < 15) {

return NO;

}

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;

}

经本人测试,没有问题,可以放心使用。

posted @ 2018-07-05 14:51  sundaysios  阅读(154)  评论(0编辑  收藏  举报