银行卡正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了银行卡正则表达式相关的知识,希望对你有一定的参考价值。
- - (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;
- }
以上是关于银行卡正则表达式的主要内容,如果未能解决你的问题,请参考以下文章