开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验

下面是判断银行卡号输入是否正确的代码(基于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

cardNoArr[i] = Integer.valueOf(String.valueOf(cardNo.charAt(i)));

}

for(int i=cardNoArr.length-2;i>=0;i-=2) {

cardNoArr[i] <<= 1;

cardNoArr[i] = cardNoArr[i]/10 + cardNoArr[i]%10;

}

int sum = 0;

for(int i=0;i

sum += cardNoArr[i];

}

return sum % 10 == 0;

}

附(银行卡号格式化):

在输入银行卡号过程中,通常,我们会每隔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:@""]

JavaScript 判断用户输入的邮箱及手机格式是否正确

JavaScript判断用户输入的邮箱格式是否正确.判断用户输入的手机号格式是否正确,下面有个不错的示例,感兴趣的朋友可以参考下. 复制代码代码如下: /*  * 功能:判断用户输入的邮箱格式是否正确 ...

一般处理程序生成简单的图片验证码并通过html验证用户输入的验证码是否正确

一般处理程序生成简单的图片验证码并通过html验证用户输入的验证码是否正确       最近没事研究了下验证码的的动态生成及通过cookie实现HTML页面对用户输入的验证码的校验,简要如下: 1.写 ...

java判断用户输入的是否至少含有N位小数

判断用户输入的是否至少含有N位小数. 1.当用户输入的是非数字时抛出异常,返回false. 2.当用户输入数字是,判断其数字是否至少含有N位小数,如果不含有,返回false. 3.当用户输入的数字的小 ...

判断用户输入YES或NO

#!bin/bash#作者:liusingbon#功能:判断用户输入的是 Yes 或 NOread -p "Are you sure?[y/n]:" surecase $sure ...

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

alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: public boolean ...

js处理用户输入的银行卡号实现四位一段,并且只能输入数字

其中ABC是输入框的id.type="tel"可直接呼出数字键盘.

java应用程序中判断用户输入的一个整数是否在已知数组里。

import java.util.*; class Example2_5 { public static void main(String args[]) { int start=0,end,midd ...

关于判断用户输入的是不是int类型,这次没有正则表达式

末尾没有目的地的出租车,污点证人禁止入内!!! 不同的尝试有不同的方法 关于int类型的判断,我尝试了这么一个方法,可行,只是笨 正则表达式我没有搞清楚,没办法给大家讲解,欢迎各位明白人讲解,或者是我 ...

js 各类判断用户输入字符的格式函数

1.JS 判断IP格式是否正确: function checkIP(ip) { var regular = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;//正则表达式 if (reg ...

随机推荐

Java&lowbar;java动态编译整个项目,解决jar包找不到问题

java动态编译整个项目,解决jar包找不到问题原文:http://itzyx.com/index.php/javac/ 动态将java文件编译为class文件解决方案:将temp\sdl\src目录 ...

【HDOJ】3033 I love sneakers&excl;

分组背包. #include #include #define mymax(a, b) (a>b) ? a:b typedef ...

Javascript高级程序设计读书笔记(第10章 DOM)

第10章 DOM 10.1  节点层次 每个节点都有一个nodeType属性,用于表明节点的类型.任何节点类型必是下面中的一个: Node.Element_NODE(1); NODE.ATTRIBUT ...

HTML与CSS入门——第一章 理解Web的工作方式

知识点: 1.万维网的简史 2."网页"的含义,以及该术语不能反映所涉及的所有内容的原因 3.如何从你的个人计算机进入别人的浏览器 4.选择Web托管提供商的方法 5.不同的Web ...

nginx多虚拟主机优先级location匹配规则及tryfiles的使用

nginx多虚拟主机优先级location匹配规则及tryfiles的使用 .相同server_name多个虚拟主机优先级访问 .location匹配优先级 .try_files使用 .nginx的a ...

&lowbar;map

地图属性控制表 comment 备注 Map 地图ID,.gps第一个参数 Zone 区域ID,.gps第二个参数,整个地图时填0 Area 地域ID,.gps第三个参数,整个地图或区域时填0 Cha ...

elasticsearch term match multi&lowbar;match区别

转自:http://www.cnblogs.com/yjf512/p/4897294.html match 最简单的一个match例子: 查询和"我的宝马多少马力"这个查询语句匹配 ...

Django Xadmin - 重构django admin

一.Django admin的执行流程 https://www.cnblogs.com/weihengblog/p/9122509.html 我的博客,介绍了django admin执行流程 二.Xa ...

前端基础----html初识、常用标签

一.HTML初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ...

js luhn算法_判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验相关推荐

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

    开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS ...

  2. java输入正确的信息_判断用户输入的信息是否正确

    package com.Embed.util; import java.sql.Connection; import java.sql.DriverManager; import java.text. ...

  3. 判断用户输入的是否是正确电话号码

    判断用户输入的是否是正确电话号码 很常用的一个方法! /**      * 匹配手机号方法      * 匹配输入的电话号码是否是正确的号码      * 要更加准确的匹配手机号码值匹配11为数字是不 ...

  4. python编写一个程序、输入一个数判断其是偶数还是奇数_编写一个程序,判断用户输入的整数是偶数还是奇数。 (7.0分)_学小易找答案...

    [其它]已知info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1] (6.0分) [其它]阅读下面的程序,分析代码是否可以编译通过,如果能编译通过,请列出运行 ...

  5. 【JS】判断用户输入的用户名首位是否是字母

    判断用户输入的用户名首位是否是字母 https://codepen.io/sam9029/pen/xxWrGRw 思路: 方法1. 正则 /[a-z]/i 方法2. ASCII码 A-Z的ascii码 ...

  6. 判断用户输入的数字是奇数还是偶数

    判断用户输入的数字是奇数还是偶数代码关键知识点 条件运算符,== 相等运算符,为了让两个不同的数据类型(如number和string)的值可以作比较,必须要把一种类型转换为另一种类型(转换成相同的类型 ...

  7. 虚拟机Linux中判断用户输入的是 Yes 或 NO

    Linux中判断用户输入的是 Yes 或 NO #!/bin/bash # 判断用户输入的是 Yes 或 NO read -p "Are you sure?[y/n]:" sure ...

  8. 判断用户输入的日期是否为当前日期

    应用java.util.Calendar类实现,首先使用该类的getInstance()方法来获取系统当前时间的日历对象,再使用该对象中提供的方法获得当前时间 创建一个当前时间的Calendar对象 ...

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

    本文内容:判断用户输入的参数是否为数字 在shell中如何进行计算? 方式一 [root@XiaoPeng scripts]# echo $((1+2)) 3 方式二 [root@XiaoPeng s ...

最新文章

  1. vue如何使用原生js写动画效果_手摸手,带你用 vue 动画实现原生 app 切换效果,丝滑般的体验...
  2. 【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )
  3. 这是一个什么用也没有的模板
  4. 链表线性表及其操作c语言代码大全,用链表实现线性表的各种操作(C语言)
  5. php商城多属性选择,ecshop后台商品属性详解之复选属性
  6. 面试题整理 8 字符串排序扩展题
  7. JavaScript流程控制之分支结构
  8. MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)
  9. Angular self study 2 - compile how is hello {{ name }} compiled
  10. [Xcode 实际操作]六、媒体与动画-(6)使用UIBlurEffect给图片添加模糊效果
  11. mysql 报表统计sql使用实例_mysql 案例~mysql元数据的sql统计
  12. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
  13. win7系统office向程序发送命令时出现错误
  14. STM32工作笔记0056---认识DB9接口
  15. *第6章 判别分析及R使用
  16. P1164 小A点菜(动态规划背包问题)
  17. wordpress审查元素修改php,WordPress 教程:如何通过 PHP 代码修改表结构和索引
  18. no jdk specified
  19. HTML+CSS基础学习笔记2
  20. java 图片背景色_java处理图片背景颜色的方法

热门文章

  1. 移动web输入法自带表情错误处理
  2. input事件和change事件的区别
  3. 阿里播放器踩坑记录 进度条重构 video loadByUrl失效解决方案
  4. 计算机奥林匹克竞赛题库,美国计算机奥林匹克竞赛题库分享
  5. 罗永浩:一直走在人格营销的路上
  6. 蓝牙耳机哪家的音质最好?盘点十大音质最好的蓝牙耳机品牌
  7. 国家战略之什么是新基建?
  8. java阻塞队列的使用
  9. 高效教练培训员工的十六字箴言
  10. 第一章 软件测试概述