判斷銀行帳號是否輸入正確,判斷銀行帳號輸入
不多說 直接貼代碼 隨便輸入銀行卡號就可以進行判斷
- (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;}