身份证号校验原理及JavaScript实现
身份证号是中华人民共和国公民的身份编号,有15位(第一代身份证)和18位两种。第一代身份证所采用的15位身份证号,由于没有校验位,故无法进行验证,这里我们讨论现今绝大多数人所使用的18位身份证号的验证方法。15位身份证号也可以通过下面的原理转换成18位身份证号,这里就不列出方法了~ 18位身份证号码的构成如下:
XXXXXXXXXXXXXXXXXX第1-6位:1-2位表示省级行政区代码;3-4位表示地级行政区代码;5-6位表示县级行政区代码第7-14位:出生年月日第15-17位:顺序码,其中奇数分配给男性,偶数分配给女性第18位:校验码
| i | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
| Wi | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 |
m)。
function checkId(){
var code = /* 这里是要校验的身份证号 字符串或者数字都可以 */;
if(code.length == 18){
if(checkMod(code) == true){
alert("正确");
}
else alert("输入的身份证号不正确");
}
else alert("输入的身份证号格式错误。");
}
function checkMod(code){
var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],//从第18位到第2位的Wi
proof = code.charAt(17).toUpperCase() == "X" ? 10 : parseInt(code.charAt(17)),//得到输入身份证号的最后一位并将X转换为10
sum = 0;//前十七位的校验和
for(var i = 0;i < arr.length;i++){
sum += code.charAt(i) * arr[i];
}
return (proof + sum - 1) % 11 == 0;
}
完整Demo下载:
身份证号校验原理及JavaScript实现的更多相关文章
- Regexp-Utils:身份证号校验
ylbtech-Regexp-Utils:身份证号校验 1.返回顶部 1.方法 var idCardNoUtil = { /*省,直辖市代码表*/ provinceAndCitys: { 11: &q ...
- 使用 python 进行身份证号校验
使用 python 代码进行身份证号校验 先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增 ...
- Javascript 香港身份证号校验
<!DOCTYPE html> <html> <head> <title>香港身份证校验码计算</title> </head> ...
- java身份证号校验
package com.pt.modules.contract.utils; import java.text.ParseException; import java.text.SimpleDateF ...
- 锋利的js之验证身份证号
我们在做互联网网站时,注册个人资料时,经常要用到身份证号,我们需要对身份证进验证,不然别人随便输个号码就通过,让你感觉这个网站做得很shit. 身份证号是有规则的. 结构和形式 1.号码的结构 公民 ...
- Java实现身份证号码校验
二话不说,直接上代码. package hope.identitycodecheck.demo; import java.text.DateFormat; import java.text.Simpl ...
- javascript实现验证身份证号的有效性并提示
javascript实现验证身份证号的有效性并提示 function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号 ...
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq index2 3. ...
- 身份证号正则校验(js校验+JAVA校验)
js校验身份证号[15位和18位] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 ...
随机推荐
- 51nod 1061 最复杂的数V2
题目链接 51nod 1061 题面简述 求\([1, n]\)中约数个数最多的数. \(n \le 10^{200}\) 题解 首先,答案一定是一个反素数. 什么是反素数? 一个正整数\(x\)是反 ...
- 【转】用宏定义代替printf函数
问题提出 有时候我们想用宏定义来决定是编译debug版本的代码还是release的代码,dubug版本的代码会通过printf打印调试信息,release版本的代码则不会.我们总不能对每一条print ...
- Java NIO -- 通道 Channel
通道(Channel):由 java.nio.channels 包定义的.Channel 表示 IO 源与目标打开的连接.Channel 类似于传统的“流”.只不过 Channel本身不能直接访问数据 ...
- AutoCompleteTextView 简单用法 实现自定义list adapter
网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存 下面先上我写的代码:import andro ...
- theano使用
一 theano内置数据类型 只有thenao.shared()类型才有get_value()成员函数(返回numpy.ndarray)? 1. 惯常处理 x = T.matrix('x') # t ...
- Shell变量的取用、删除、取代与替换
<<鸟哥的私房菜>> 注意: 通配符适用的地方:shell命令行或者shell脚本中 正则表达式适用的地方:字符串处理时,一般有一般正则和Perl正则. 在文本过滤工具里,都是 ...
- javascript 模拟京东关闭广告栏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- json遍历 分别使用【原】
json遍历 一 使用org.json.JSONObject遍历 之后的所有遍历都参考了:http://blog.csdn.net/u010648555/article/details/4981538 ...
- nginx配置url中带问号的rewrite跳转
今天收到一个需求,要将一个带查询参数的url跳转到另外一个静态url,安装常规的rewrite规则,如: rewrite ^/a.html?id=67$ http://zt.epython.cn/20 ...
- iscroll.js 手机上下滑动 加载更多
html <!DOCTYPE html> <html> <head> <title>下拉上拉刷新页面代码</title> <meta ...