银行卡正则表达式


  • - (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 nil];  
  •         [alert show];  
  •     }else{  
  •         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"对" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, 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;  
  • }  

  • 免责声明!

    本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



     
    粤ICP备18138465号  © 2018-2025 CODEPRJ.COM