基于Luhn算法格式校验用户输入的银行卡号是否正确
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下基于Luhn算法格式校验用户输入的银行卡号是否正确,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!iOS代码:/** * 银行卡格式校验 * * @param car
千家信息网最后更新 2026年11月03日基于Luhn算法格式校验用户输入的银行卡号是否正确
小编给大家分享一下基于Luhn算法格式校验用户输入的银行卡号是否正确,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
iOS代码:
/** * 银行卡格式校验 * * @param cardNo 银行卡号 * * @return */+ (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;}Androd代码:
/** * 匹配Luhn算法:可用于检测银行卡卡号 * @param cardNo * @return */ public static boolean matchLuhn(String cardNo) { int[] cardNoArr = new int[cardNo.length()]; for (int i=0; i=0;i-=2) { cardNoArr[i] <<= 1; cardNoArr[i] = cardNoArr[i]/10 + cardNoArr[i]; } int sum = 0; for(int i=0;i附(银行卡号格式化):
在输入银行卡号过程中,通常,我们会每隔4位插入一个"-",类似"1332-2131-2313-1231-212"这种的格式
可以通过以下方法实现:
设置textField的代理
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSString *text = [textField text]; NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"]; string = [string stringByReplacingOccurrencesOfString:@"-" withString:@""]; if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) { return NO; } text = [text stringByReplacingCharactersInRange:range withString:string]; text = [text stringByReplacingOccurrencesOfString:@"-" withString:@""]; NSString *newString = @""; while (text.length > 0) { NSString *subString = [text substringToIndex:MIN(text.length, 4)]; newString = [newString stringByAppendingString:subString]; if (subString.length == 4) { newString = [newString stringByAppendingString:@"-"]; } text = [text substringFromIndex:MIN(text.length, 4)]; } newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]]; if (newString.length >= 24) { return NO; } [textField setText:newString]; return NO;}最后,怎么获得不包含符号"-"的银行卡号呢?
[self.textField.text stringByReplacingOccurrencesOfString:@"-" withString:@""]
看完了这篇文章,相信你对"基于Luhn算法格式校验用户输入的银行卡号是否正确"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
银行
卡号
格式
算法
输入
用户
代码
篇文章
银行卡
偶数
可以通过
奇数
完了
方法
更多
知识
符号
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司
互联网核心科技是什么
互联网下的科技发展
互联网 科技创业
润盈互联网科技
互联网科技大会
互联网和高科技公司
互联网经济与金融科技
互联网科技公司有风险吗
辽宁互联网新科技
科技类公司包括互联网吗
梅州GM互联网络科技有限公司
互联网科技融合创新
福州德业互联网科技
万物互联网智能科技
艺电能源互联网科技有限公司招聘
互联网金融运营模式中的金融科技
科技互联网经济论坛
上海互联网科技园景观
如何强化互联网金融科技
科技制造互联网公司
深圳互联网科技公司
互联网金融科技创新
小马过河互联网科技
壕鑫互联网络科技
互联网软件和科技
国大互联网教育科技有限公司工作
互联网金融科技公司的优势
互联网科技手机排行榜
颐高云石互联网科技