iOS判断用户输入的银行卡号是否正确

为了打造更好的用户体验,同时减轻服务器端的压力,对于一些如,手机号码,银行卡号,身份证号码判断是否正确是很有必要的

下面是一小段判断银行卡号输入是否正确的代码方法供大家参考

  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3. NSString *str = @"6226820011200783033";
  4. BOOL isRight = [self checkCardNo:str];
  5. if (!isRight) {
  6. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"不对" message:@"请重新输入卡号" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil nil];
  7. [alert show];
  8. }else{
  9. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"对" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil nil];
  10. [alert show];}
  11. }

///// ****** 方法******///

  1. - (BOOL) checkCardNo:(NSString*) cardNo{
  2. int oddsum = 0;     //奇数求和
  3. int evensum = 0;    //偶数求和
  4. int allsum = 0;
  5. int cardNoLength = (int)[cardNo length];
  6. int lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue];
  7. cardNo = [cardNo substringToIndex:cardNoLength - 1];
  8. for (int i = cardNoLength -1 ; i>=1;i--) {
  9. NSString *tmpString = [cardNo substringWithRange:NSMakeRange(i-1, 1)];
  10. int tmpVal = [tmpString intValue];
  11. if (cardNoLength % 2 ==1 ) {
  12. if((i % 2) == 0){
  13. tmpVal *= 2;
  14. if(tmpVal>=10)
  15. tmpVal -= 9;
  16. evensum += tmpVal;
  17. }else{
  18. oddsum += tmpVal;
  19. }
  20. }else{
  21. if((i % 2) == 1){
  22. tmpVal *= 2;
  23. if(tmpVal>=10)
  24. tmpVal -= 9;
  25. evensum += tmpVal;
  26. }else{
  27. oddsum += tmpVal;
  28. }
  29. }
  30. }
  31. allsum = oddsum + evensum;
  32. allsum += lastNum;
  33. if((allsum % 10) == 0)
  34. return YES;
  35. else
  36. return NO;
  37. }
时间: 2024-12-30 22:24:09

iOS判断用户输入的银行卡号是否正确的相关文章

判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验

开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS代码: /** *  银行卡格式校验 * *  @param cardNo 银行卡号 * *  @return */ + (BOOL) checkCardNo:(NSString*) cardNo{ int oddsum = 0;     //奇数求和 int evensum = 0;    //偶

servlet中判断用户输入的验证码是否正确

并且一个更严重的问题是,动画运行完,就停止了.而loading动画应该是循环的,在查阅了文档及Animated源码之后,没有找到类似loop这种控制循环的属性,无奈之下,只能另辟蹊径了. 上文提到过,Animated动画的start方法可以在动画完成之后执行回调函数,如果动画执行完毕之后再执行自己,就实现了循环,因此,将动画封装成函数,然后循环调用本身就可以了,不过目前动画还只把高度变矮了,没有重新变高的部分,因此即使循环也不会有效果,动画部分也需要修正: 现在在player对象的play方法里

alertDialog创建登陆界面,判断用户输入

alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: 1 public boolean onOptionsItemSelected(MenuItem item) { 2 // TODO Auto-generated method stub 3 switch(item.getItemId()){ 4 case 1: 5 Intent intent = new Intent(); 6

以写代学:python 数据类型之字符串,判断用户输入的id是否符合要求

字符串操作符 比较操作符:字符串大小按ASCLL码值大小进行比较 切片操作符:[].[:].[::] 成员关系操作符:in.not in 脚本:判断用户输入的id是否符合要求 #!/usr/bin/env python import string #定义字符的范围first_id = string.letters + "_"           //确定首字符的范围all_id = string.digits + first_id         //确定其他字符的范围 #请求用户输入

判断用户输入的邮箱地址是否合法 传说中的正则表达式?

判断用户输入的邮箱地址是否合法 - (BOOL) validateEmail: (NSString *) candidate { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", em

43.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a numerical character”

//1.学习到字符输入 //2.判断字符 #include<iostream> using namespace std; int main() { char a; cout<<"please input a charcter: "<<endl; cin>>a; if(a>'0'&&a<'9') { cout<<"it's a numerical character!"<&l

【shell】Linux shell 之 判断用户输入的变量是否为数字

本文内容:判断用户输入的参数是否为数字 在shell中如何进行计算? 方式一 [[email protected] scripts]# echo $((1+2)) 3 方式二 [[email protected] scripts]# expr 2 + 3 5 [[email protected] scripts]# 注意:使用方式二的时候,要求必须要有间隔.如果使用的是乘法,号必须进行转义写为 \ [[email protected] scripts]# expr 2 * 3 expr: 语法错

四则运算实现用户输入答案并统计正确数量

一,设计思路: 本次的实现目标是在上次代码的基础之上实现用户输入答案,并判断答案是否正确并进行统计,最后输出正确答案的个数. 判断答案是否正确的思路是在上次的基础之上先定义wrong(用来统计错误个数)right(用来统计正确的个数)k1,参数. 在void Display函数中定义答案的判断和正确错误的统计,最后在主函数中通过指针的调用来实现答案正确和错误个数的统计. 二,源代码: #include<stdlib.h>#include<iostream.h>#include<

Java小案例——判断用户输入的月份的季节

 要求:  *  根据用户输入的月份来判断该月季节 实现代码: import java.util.Scanner; /** * 要求: * 根据用户输入的月份来判断该月季节 * @author Administration * */ public class JudgeSeason { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入一个