- - (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;
- }
时间: 2024-10-15 05:55:09