基于Luhn算法格式校验用户输入的银行卡号是否正确
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,小编给大家分享一下基于Luhn算法格式校验用户输入的银行卡号是否正确,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!iOS代码:/** * 银行卡格式校验 * * @param car
千家信息网最后更新 2025年02月07日基于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安全错误
数据库的锁怎样保障安全
APP软件开发只开发前端吗
中国小学生网络安全
网络安全法中的直播问题
后台管理软件开发
419网络安全讲话内容
飞飞游戏服务器管理员
在家怎么玩数据库
相机软件开发过程
黑客与网络安全法
以网络安全为题的博文
江苏c语言软件开发报价
网络安全大赛用的什么软件
浏览器服务器结构
桐城市知天下网络技术有限公司
上海忆蒙网络技术有限公司
逻辑磁盘管理服务器
软件开发和外包优劣
湖南软件开发扬岚鸿
思科系统网络技术公司 概况
广州印彩互联网科技有限公司
公安部网络安全保卫局局长刘
百推网络安全
宁波第三届网络安全大赛结果
putty保存数据库
工行软件开发 待遇
软件开发工作室电脑配置
计算机软件开发学习内容
商务翻译软件开发
湛江聊呗app软件开发定制
卡巴斯基管理服务器怎样配置