- 浏览: 1510912 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (595)
- Java咖啡厅 (208)
- IT杂侃 (23)
- 程序员笑话 (7)
- 我的后现代文学 (1)
- WEB编程 (116)
- 软件评测 (8)
- 操作系统 (3)
- 炫目Ruby (2)
- 行业知识 (7)
- 我的动漫情结 (6)
- 其他 (8)
- Window DIY (6)
- 古文学 (3)
- 转载文章 (2)
- IT百科 (7)
- 动态网页Active (1)
- 文档 (1)
- 设计理论 (11)
- .NET 快速开发 (18)
- 英语学习 (6)
- 网站分析 (2)
- 开源软件 (4)
- 数据库 (28)
- 笔记 (4)
- 源代码共享 (8)
- IT人物 (2)
- 软件管理 (10)
- 小说创作 (0)
- 大众软件 (12)
- 网站评论 (3)
- 小虾乱说 (10)
- 游戏 (8)
- 心情 (3)
- 娱乐休闲 (2)
- Delphi编程 (1)
- PHP编程 (4)
- 中间件 (2)
- 移动开发 (2)
- Office应用 (2)
- Photoshop (1)
- Eclipse (5)
- 面试题 (1)
- 手机评测 (0)
- VBScript (1)
- WEB前端-EXT (3)
- 吐槽 (1)
- Java咖啡厅 Ibatis (1)
- javascript Ext (1)
- jquery ui (1)
- require (1)
- WEB编程 Javascript (1)
- jquery (1)
- Swing (1)
- 分布式 (1)
最新评论
-
zhangjihao:
28. 下面哪个Set是排序的? A. LinkedHas ...
Java面试题(选择题) -
zhangthe9:
ICMP报文被封装在IP包里,也就是说他是由IP协议承载的,从 ...
Java面试题(选择题) -
zhunengfei:
真的假的?
自已写的jquery ui框架 -
white_crucifix:
少年,发烫是所有智能手机的特点,而莫名发烫是所有安卓手机的特点 ...
【吐槽】三星手机的OS是一砣屎 -
suzu88:
试了一下,可以用。如果美化一下控件和窗体更有意思。
一个用XML构建Swing视图的框架
<script>
function checkIdcard(idcard){
var Errors=new Array(
"验证通过!",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
}
if(ereg.test(idcard)) return Errors[0];
else return Errors[2];
break;
case 18:
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
}
if(ereg.test(idcard)){
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);
if(M == idcard_array[17]) return Errors[0];
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
alert(checkIdcard("44011119841031482X"))
</script>
VFP的身份证校验算法!
---------------------------------------------------------------
关于身份证号码最后一位的校验码的算法如下:
我国现行使用公民身份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。
〖GB 11643-1989〗中规定的是15位身份证号码:排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。
〖GB 11643-1999〗中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。
校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
公式如下:
∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (1)
"*" 表示乘号
i--------表示身份证号码每一位的序号,从右至左,最左侧为18,最右侧为1。
a[i]-----表示身份证号码第 i 位上的号码
W[i]-----表示第 i 位上的权值 W[i] = 2^(i-1) mod 11
计算公式 (1) 令结果为 R
根据下表找出 R 对应的校验码即为要求身份证号码的校验码C。
R 0 1 2 3 4 5 6 7 8 9 10
C 1 0 X 9 8 7 6 5 4 3 2
由此看出 X 就是 10,罗马数字中的 10 就是X,所以在新标准的身份证号码中可能含有非数字的字母X。
发表评论
-
AJAX
2019-06-12 22:41 904Ajax 全名为Asynchronous Javas ... -
Webpack入门配置
2019-01-05 15:33 3198Webpack是一个强大前端集成工具,它在Nodejs的基础 ... -
解决Jetty做Web容器时,修改JS或HTML出错的问题
2018-07-03 18:28 1096解决的方法 1. 进入jetty的安装目录 ... -
用JQuery做的一个分页效果
2018-05-28 02:29 2347这个效果主要使用jquery来实现, 每次显示 ... -
Vue自已写的日历插件
2018-05-07 12:36 6426自已写的日历插件,还在优化中,后续会陆续更新。 ... -
无刷新上传文件的方法
2018-04-15 00:05 840这里使用jquery.form.js的方法 1. ... -
zrender学习点滴
2018-01-21 20:37 1822Zrender是一个二维绘图引擎,它提供了Canvas,S ... -
原创程序- Web版数据库管理
2017-11-15 00:39 1185这是我自已写的Web版的数据库管理工具,主要是依赖于JDBC ... -
Vue学习点滴
2017-09-23 22:11 7581. 循环 v-for="(item, ... -
Eclipse创建Web项目
2017-07-29 10:53 7841. 打开创建Web项目的对话框 2 ... -
HTML5 新增功能收集
2017-04-29 03:18 683HTML 5是HTML发展以来最大的一次变革,相比其 ... -
Bootstrap学习记录点滴
2017-04-28 00:56 9221. 学习Bootstrap必进的学习网站 ... -
关于地图显示的一些知识
2017-02-18 23:34 9341. 墨卡托(Mercator)投影 墨卡 ... -
CSS知识记录点滴
2017-02-05 11:06 6041. 元素无法选择 -webkit-u ... -
用JS制作3D效果布局
2016-12-04 22:18 25这是用JS做的一个3D布局效果的程序, 目前还是研究 ... -
tntxiawebmvc 做国家管理的系统
2016-11-19 18:21 8721. 首先我们先增加一个Web项目 如图:我们在左 ... -
jtopo学习记录
2016-11-13 13:34 15611. 通过JSON的格式来创建结点: $(funct ... -
Html 5 Canvas 学习记录
2016-11-13 10:28 5921. stroke beginPath endPat ... -
jquery杂记
2016-08-11 19:11 6961. $ 的作用 $ 在jquery里面有两 ... -
自已写的jquery ui框架
2016-03-08 23:53 1552这个是自已写的一个jquery ui的插件,目的是 ...
相关推荐
JavaScript(简称JS)是一种广泛用于网页和网络应用的编程语言,尤其在客户端脚本中扮演着重要角色。本文将深入探讨如何使用JavaScript进行身份证验证,包括有效性检查和区域信息识别。 身份证验证是确保用户输入的...
中国的身份证号码由18位数字组成,每一段数字都有其特定含义,揭示了持有人的出生地、出生日期、性别等关键个人信息。这个系统可能是以美观易用的界面呈现,方便用户直观地理解和获取这些信息。 首先,我们来深入...
这段代码定义了一个名为`check_id`的函数,它接收一个字符串参数`value`,该字符串表示用户输入的身份证号码。函数内部首先使用正则表达式进行格式校验,然后通过循环累加计算加权因子与相应数字的乘积之和,之后...
这段代码是用来验证一个给定的身份证号码是否有效的。在中国,身份证号码是由18位数字组成,包含了出生日期、性别、地区代码以及顺序码和校验码。下面我们将深入探讨身份证验证的相关知识点。 首先,代码中用到了...
验证身份证号码的方法通常会使用正则表达式来检测一个字符串是否符合上述的格式规则。 邮箱地址的正则表达式验证 邮箱地址通常由本地部分、@符号和域名部分组成。本地部分可以包含字母、数字、下划线、点号、减号和...
1. 第一段代码展示了一个完整的提取过程,包括对15位和18位身份证号码的处理。 2. 第二段代码则专注于提取性别信息,并使用if-else结构来判断。 ### jQuery应用技巧 文件还提到其他一些与jQuery相关的技巧和专题,...
### 使用JavaScript判断文本框中的内容是否为一个正确的手机号或身份证号 在Web开发中,确保用户输入的数据符合预期格式是一项非常重要的任务。特别是在涉及到敏感信息如手机号和身份证号时,前端验证可以提供即时...
**功能描述:**检查输入的一串字符是否符合中国大陆身份证号码的标准格式。 **参数说明:** - `str`: 需要验证的字符串。 **返回值:** - `true`:如果字符串符合身份证号码格式; - `false`:如果字符串不符合...
1.44 判断文本内容是否少于 2 个汉字/字符(js中汉字和字符占位一 样).. 53 1.45 检测输入是否只有字母或数字. 53 1.46 检测输入是否只有数字或不详,且输入数值不能过大(不能超过 32767).. 54 1.47 检测输入是否...
在表单验证中,身份证号码验证是一个常见的需求。此段代码提供了针对15位与18位身份证号码的验证方法。具体实现如下: ```javascript function idNumber(s) { // 定义15位身份证号正则表达式 var regu1 = /^[1-9]...
4. 结果纠正:由于OCR识别可能会出现错误,所以需要通过全国行政区和身份证号码的对应关系进行校正。这通常需要建立一个数据库或者查询服务,来验证和修正识别结果。 5. 系统实现:这部分计划在网页环境中展示模型...
9. **检查一段字符串是否全由数字组成**:这个功能常用于电话号码或身份证号等字段的验证。使用正则表达式`/^\d+$/`可以检查字符串是否全由数字构成。 10. **屏蔽关键字**:在某些场合,需要避免用户输入特定的...
17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS制作的进度条(二) 17.5 进度条形式的下载效果 17.6 滑动条(一) 17.7 滑动条(二) 17.8 窗体滚动条随文字增加自动滚动 17.9 为textarea加横向滚动条 17.10 记录滚动条...
17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS制作的进度条(二) 17.5 进度条形式的下载效果 17.6 滑动条(一) 17.7 滑动条(二) 17.8 窗体滚动条随文字增加自动滚动 17.9 为textarea加横向滚动条 17.10 记录滚动条...
方法从身份证号码获取生日的例子 10.3.2.2 一个使用test()方法遍历字符串的例子 10.4 关于正则表达式包装对象 10.4.1 RegExp对象——利用正则表达式实现全文检索 10.4.2 RegExp的实例属性 10.5 ...
这段代码定义了一个名为`lTrim`的函数,该函数接受一个字符串参数`str`,如果`str`不是字符串类型或为空,则返回空字符串;否则,它将移除字符串左侧的所有空白字符。 #### 2. 右端空白字符去除 (RTrim) ```...
给出的代码中没有直接提供一个正则表达式,而是通过一段函数 `check_idcard` 来验证身份证号码的有效性。函数 `check_idcard` 首先检查身份证号码长度是否为18位,其次检查省份代码是否存在于给定的 `varcity` 对象...
- `^\d{17}([0-9]|X)$` 匹配18位身份证号码,最后一位可以是数字或大写字母X。 ### 9. 检测浏览器是否为IE ```javascript var isIE = /msie/i.test(navigator.userAgent) && !window.opera; ``` **解释:** - 这...
有时我们需要去除一段文本中的HTML标签,这时可以使用如下的正则表达式: ```javascript var htmlTagPatrn = /<(S*?)[^>]*>.*?|*?\/>/; ``` 该正则表达式用于匹配带有闭合标签的HTML片段。 ##### 2. 英文大小写验证...