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

派生到我的代码片
  1. - (void)viewDidLoad {  
  2.     [super viewDidLoad];  
  3.     NSString *str = @"6226820011200783033";  
  4.     BOOL isRight = [self checkCardNo:str];  
  5.     if (!isRight) {  
  6.           
  7.         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"不对" message:@"请重新输入卡号" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil nil];  
  8.         [alert show];  
  9.     }else{  
  10.         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"对" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil nil];  
  11.         [alert show];}  
  12. }  


//这就是判断方法   

  1. - (BOOL) checkCardNo:(NSString*) cardNo{  
  2.     int oddsum = 0;     //奇数求和  
  3.     int evensum = 0;    //偶数求和  
  4.     int allsum = 0;  
  5.     int cardNoLength = (int)[cardNo length];  
  6.     int lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue];  
  7.       
  8.     cardNo = [cardNo substringToIndex:cardNoLength - 1];  
  9.     for (int i = cardNoLength -1 ; i>=1;i--) {  
  10.         NSString *tmpString = [cardNo substringWithRange:NSMakeRange(i-11)];  
  11.         int tmpVal = [tmpString intValue];  
  12.         if (cardNoLength % 2 ==1 ) {  
  13.             if((i % 2) == 0){  
  14.                 tmpVal *= 2;  
  15.                 if(tmpVal>=10)  
  16.                     tmpVal -= 9;  
  17.                 evensum += tmpVal;  
  18.             }else{  
  19.                 oddsum += tmpVal;  
  20.             }  
  21.         }else{  
  22.             if((i % 2) == 1){  
  23.                 tmpVal *= 2;  
  24.                 if(tmpVal>=10)  
  25.                     tmpVal -= 9;  
  26.                 evensum += tmpVal;  
  27.             }else{  
  28.                 oddsum += tmpVal;  
  29.             }  
  30.         }  
  31.     }  
  32.       
  33.     allsum = oddsum + evensum;  
  34.     allsum += lastNum;  
  35.     if((allsum % 10) == 0)  
  36.         return YES;  
  37.     else  
  38.         return NO;  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值