JS身份证验证
- window.checkIdcard = function (idcard) {
- var errors = new Array(
- "yes",
- "请检查输入的证件号码是否正确", //"身份证号码位数不对!",
- "请检查输入的证件号码是否正确", //"身份证号码出生日期超出范围或含有非法字符!",
- "请检查输入的证件号码是否正确", //"身份证号码校验错误!",
- "请检查输入的证件号码是否正确" //"身份证地区非法!"
- );
- var area = { : "北京", : "天津", : "河北", : "山西", : "内蒙古", : "辽宁", : "吉林", : "黑龙江", : "上海", : "江苏", : "浙江", : "安徽", : "福建", : "江西", : "山东", : "河南", : "湖北", : "湖南", : "广东", : "广西", : "海南", : "重庆", : "四川", : "贵州", : "云南", : "西藏", : "陕西", : "甘肃", : "青海", : "宁夏", : "新疆", : "台湾", : "香港", : "澳门", : "国外" }
- var y, jym;
- var s, m;
- var idcardArray = new Array();
- idcard = idcard.replace(/(^\s*)|(\s*$)/g, "");
- idcardArray = idcard.split("");
- //地区检验
- if (area[parseInt(idcard.substr(, ))] == null) return errors[];
- //身份号码位数及格式检验
- var ereg;
- switch (idcard.length) {
- case :
- if ((parseInt(idcard.substr(, )) + ) % == || ((parseInt(idcard.substr(, )) + ) % == && (parseInt(idcard.substr(, )) + ) % == )) {
- ereg = /^[-][-]{}[-]{}((||||||)([-]|[-][-]|[-])|(|||)([-]|[-][-]|)|([-]|[-][-]))[-]{}$/; //测试出生日期的合法性
- } else {
- ereg = /^[-][-]{}[-]{}((||||||)([-]|[-][-]|[-])|(|||)([-]|[-][-]|)|([-]|[-]|[-]))[-]{}$/; //测试出生日期的合法性
- }
- if (ereg.test(idcard)) return errors[];
- else return errors[];
- case :
- //18位身份号码检测
- //出生日期的合法性检查
- //闰年月日:((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]))
- //平年月日:((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]))
- if (parseInt(idcard.substr(, )) % == || (parseInt(idcard.substr(, )) % == && parseInt(idcard.substr(, )) % == )) {
- ereg = /^[-][-]{}(|)[-]{}((||||||)([-]|[-][-]|[-])|(|||)([-]|[-][-]|)|([-]|[-][-]))[-]{}[-9Xx]$/; //闰年出生日期的合法性正则表达式
- } else {
- ereg = /^[-][-]{}(|)[-]{}((||||||)([-]|[-][-]|[-])|(|||)([-]|[-][-]|)|([-]|[-]|[-]))[-]{}[-9Xx]$/; //平年出生日期的合法性正则表达式
- }
- if (ereg.test(idcard)) {//测试出生日期的合法性
- //计算校验位
- s = (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + (parseInt(idcardArray[]) + parseInt(idcardArray[])) *
- + parseInt(idcardArray[]) *
- + parseInt(idcardArray[]) *
- + parseInt(idcardArray[]) * ;
- y = s % ;
- m = "F";
- jym = "10X98765432";
- m = jym.substr(y, ); //判断校验位
- if (m == idcardArray[]) return errors[]; //检测ID的校验位
- else return errors[];
- }
- else return errors[];
- default:
- return errors[];
- }
- }
JS身份证验证的更多相关文章
- 【原创】贡献一个项目中用到的js身份证验证-超级准!!!
前言 百度百科解释:身份证号码 首先贡献一个大神的链接:js验证身份证超准 代码 function checkIdcard(idcard) { var Errors = new Array( &quo ...
- js身份证验证类
var IDCard = function () { //---------------------------------------------------------- // 功能:根据身份证号 ...
- js身份证验证-超级准!!!
function checkIdcard(idcard) { var Errors = new Array( "验证通过!", "身份证号码位数不对!", &q ...
- js身份证验证代码
var idCardNoUtil = { provinceAndCitys: {11:"北京",12:"天津",13:"河北",14:&qu ...
- 身份证验证JS代码
身份证验证JS程序function checkidcardfun(code) { var city = {11: "北京", 12: "天津", 13: &qu ...
- Js完美验证15/18身份证,Js验证身份证,支持15/18位
Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...
- js邮箱验证,身份证验证,正则表达式
邮箱验证: html部分: 邮箱验证:<input type="text" id="mail" value="" / onkeyup= ...
- 基于JS的身份证验证(完整版)
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加权因子 var ValideCode = [ 1, 0 ...
- JS脚本验证大全
/** * 2009-10-01 * 贺 臣 * 情 缘 * js各种表单数据验证 *//***************************************************** ...
随机推荐
- C# winform webbrowser如何指定内核为IE11? 输出 this.webbrowser.Version 显示版本是IE11的,但实际版本不是啊! 网上打的修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULA
最佳答案 1)假设你应用程序的名字为MyApplication.exe 2)运行Regedit,打开注册表,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\M ...
- Centos下添加PHP对MSSQL的支持
Leave a reply 其实很少会有连接SQL Server的机会,不过我们公司刚好有个应用需要使用的SQL Server的数据库,所以也知道给LNMP安装MSSQL的扩展. 搜索网上的相关文章一 ...
- linux下操作iso文件的两个shell程序
记得这还是当初玩cdlinux时弄的,当初应该是由于windows下的Ultraiso对cdlinux的镜像修改后导致镜像无法引导,所以就使用linux下的命令进行操作 这应该是挂载iso文件的命令: ...
- JS多重判断 / ES6 includes
Array.includes () 判断数组是否包含某个元素 直接返回true或者false表示是否包含元素,对NaN一样能有有效 const arr = ['1', '2', 'a', 'b' , ...
- python 不同集合上元素的迭代 chain()
itertools.chain()可以接受一个可迭代对象列表作为输入,并返回一个迭代器,有效的屏蔽掉在多个容器中迭代细节 >>> from itertools import chai ...
- python webdriver api-操作日期元素的方法
操作日期元素 第一种方式直接向输入框输入日期 dateInputBox = self.driver.find_element_by_id("datepicker") dateInp ...
- python pip list 命令列出所有安装包和版本信息
c:\Python27\Scripts>pip listDEPRECATION: The default format will switch to columns in the future. ...
- 精力管理 | 迅速恢复精力的N个技巧,四个关键词以及自我管理的方法和工具列表
精力管理 | 迅速恢复精力的N个技巧,所谓坚持,是坚定的“持有”,这个“持”字很值得琢磨——不是扛.不是顶,而是“持”这样一个半放松的状态.如果你没做好自己该做的事情,如果你自己没有成长起来,随着年龄 ...
- velocity #parse抽象重用部分组件
在某些时候,处于重用的目的,我们会选择将可以重用的部分内容剥离在单独的模板文件中,比如对于查询页面的表格部分,因为现在很多的条件可能是通过弹出查询框的方式来实现,而作为普通页面的时候,他们会有更多的功 ...
- 20145105 《Java程序设计》实验五总结
实验五 JAVA网络编程 一.实验内容 用老师给的代码,实现服务器和客户端 和结对同学实现服务器与客户端的连接 客户端输入数据并加密,将密文发送给服务器,服务器接收密文并解密 二.实验步骤 用老师给的 ...