基于Luhn算法格式校验用户输入的银行卡号是否正确
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下基于Luhn算法格式校验用户输入的银行卡号是否正确,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!iOS代码:/** * 银行卡格式校验 * * @param car
千家信息网最后更新 2025年12月02日基于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安全错误
数据库的锁怎样保障安全
视频网站数据库设计图
博雅数据库山西2019
阜阳软件开发培训多少钱
大庆市龙江网络安全中心电话
政府网络安全工作会议材料
煤监网络安全
广东软件开发者怎么收费
如何提高服务器安全性能
微信小程序用什么软件开发好
网络安全防线方法
删除list中所有数据库
互联网产业科技创新
联想服务器结构工程师
简单数据库编程软件
苏州乐至软件开发商
软件开发工程大学排名
软件开发是读什么学校
武汉市国家网络安全宣传周
为什么服务器都要安装
总结模板软件开发
软件开发方法学 3个
服务器免流搭建教程
济南易铺网络技术有限公司
计算机网络技术例题讲解
顺德科技软件开发公司
28岁开始做软件开发
连云港大数据服务器代理商
重庆惠普服务器虚拟化价格
招商银行的数据库招人吗
网络技术简历自我介绍