银行卡正则表达式

  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. }
  12. - (BOOL) checkCardNo:(NSString*) cardNo{
  13. int oddsum = 0;     //奇数求和
  14. int evensum = 0;    //偶数求和
  15. int allsum = 0;
  16. int cardNoLength = (int)[cardNo length];
  17. int lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue];
  18. cardNo = [cardNo substringToIndex:cardNoLength - 1];
  19. for (int i = cardNoLength -1 ; i>=1;i--) {
  20. NSString *tmpString = [cardNo substringWithRange:NSMakeRange(i-1, 1)];
  21. int tmpVal = [tmpString intValue];
  22. if (cardNoLength % 2 ==1 ) {
  23. if((i % 2) == 0){
  24. tmpVal *= 2;
  25. if(tmpVal>=10)
  26. tmpVal -= 9;
  27. evensum += tmpVal;
  28. }else{
  29. oddsum += tmpVal;
  30. }
  31. }else{
  32. if((i % 2) == 1){
  33. tmpVal *= 2;
  34. if(tmpVal>=10)
  35. tmpVal -= 9;
  36. evensum += tmpVal;
  37. }else{
  38. oddsum += tmpVal;
  39. }
  40. }
  41. }
  42. allsum = oddsum + evensum;
  43. allsum += lastNum;
  44. if((allsum % 10) == 0)
  45. return YES;
  46. else
  47. return NO;
  48. }
时间: 2024-10-15 05:55:09

银行卡正则表达式的相关文章

网页登录和注册页面常用的正则表达式

用户名正则表达式:  字母/数字/[email protected]在内的6-20位 var userName = /^[[email protected]]{6-20}$/; 手机号码正则表达式: var reg_mobile = /^0?(1[3-9][0-9])[0-9]{8}$/; 密码正则表达式: var reg_pwd = /^[[email protected]]{6-20}$/; 交易密码正则表达式: var deal_pwd = /^[0-9]{6}$/var deal_pwd

JS-特效 ~ 05. 缓动框架兼容封装/回掉函数/兼容透明度/层级、旋转轮播图、正则表达式、验证表单注册账号、

缓动函数中opcity  写百分值的值 JS一般不用小数运算,会照成精度丢失 元素的默*认透明度是 层级一次性赋值,不缓动 利用for-in为同一个父元素的子元素绑定属性 缓动框架兼容封装/回掉函数/兼容透明度/层级 function animate(ele,json,fn){ //先清定时器 clearInterval(ele.timer); ele.timer = setInterval(function () { //开闭原则 var bool = true; //遍历属性和值,分别单独处

表单验证之正则表达式

1.    手机号验证 经网络查询可知,中国三大运营商号码波段主要有: (1).    移动号段: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188 (2).    联通号段: 130 131 132 145 155 156 171 175 176 185 186 (3).    电信号段: 133 149 153 173 177 180 181 189 虚拟运营商: 170 因此设定手机号验证

iOS中常用正则表达式含义

\d 匹配任何一个数字,即[0-9] \d+表示1个以上的数字 \d*标示0个或多个数字 \s 表示分隔符,包括空格.制表符和换行符 \s* 0个或多个分隔符 \w 表示字母.数字和下划线,这里还包括Unicode字符,不同的语言里有些不同 \w{4} 表示4个非空白字符 . 表示任何一个字符,不包括换行符 .* 表示任何多个字符,当然也不包括换行符了 ^([0-9]) 表示数字开头 ([0-9])$ 表示数字结尾 ([0-9A-Za-z]) 表示数字字母 | 表示或的关系,如\d|\w 表示数

正则表达式(RegExp)

1 正则表达式(英语:Regular Expression) 正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模式.搜索模式可用于文本搜索和文本替换. 2 什么是正则表达式? 正则表达式是由一个字符序列形成的搜索模式. 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容. 正则表达式可以是一个简单的字符,或一个更复杂的模式. 正则表达式可用于所有文本搜索和文本替换的操作.

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

正则表达式中的逆向思维

人们的正常思维都是顺向的,那么逆向思维呢,特别是初学正则表达式的同学们,好不容易掌握了正则表达式的用法,再突然要你用逆向思维做题,会有很多不适应: 这里拿三道题,来做简单介绍: 1.经典例题取IP: [[email protected] ~]# ifconfig eth0|sed -nr '2s#^[^0-9]+(.*)[a-Z]{5,}.*#\1#gp' 10.0.0.200 2.调换/etc/passwd中最后一列和第一列的位置: [[email protected] ~]# head /p

JAVA正则表达式:Pattern类与Matcher类详解(转)

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

前端学PHP之正则表达式函数

前面的话 正则表达式不能独立使用,它只是一种用来定义字符串的规则模式,必须在相应的正则表达式函数中应用,才能实现对字符串的匹配.查找.替换及分割等操作.前面介绍了正则表达式的基础语法,本文将详细介绍正则表达式函数 匹配与查找 [preg_match()] preg_match()函数用来执行一个正则表达式匹配,搜索subject与pattern给定的正则表达式的一个匹配.返回pattern的匹配次数.它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索.preg