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各种表单数据验证 *//***************************************************** ...
随机推荐
- IDA 7.0在Mojava更新后打不开的问题
Mac升级到mojava后,ida 7.0打不开了. 上述是两种典型的窗口,不过不论是出现什么样的弹窗,如果是在升级之后出现的,都要试一下下面的解决办法.因为IDA7.0版本流出的比较多,虽然这个已经 ...
- keras搭建密集连接网络/卷积网络/循环网络
输入模式与网络架构间的对应关系: 向量数据:密集连接网络(Dense层) 图像数据:二维卷积神经网络 声音数据(比如波形):一维卷积神经网络(首选)或循环神经网络 文本数据:一维卷积神经网络(首选)或 ...
- C++声明和定义
目录 1 参考 2 概念 2.1 声明 2.2 定义 3 对比 3.1 声明但不是定义的情况 3.2 声明且是定义的情况 3.3 特殊情况 1. 参考 1. <C++程序设计语言>4.9 ...
- 011-/etc/resolv.conf详解
- Lower Power with CPF(四)
CPF从Front-end到Back-end(RTL--GDSII)的整个流程: 1)Creating a CPF file:来在前端就建立lower power的规范. 2)检查CPF文件的正确性, ...
- Linux查看操作系统版本
Linux版本太多,不同版本的命令又有所区别,所以在解决Linux的一些问题时候无从下手 或者 走一些弯路,这里提供解决此类问题的思路: 查看linux版本号 有了版本号,不同版本 统一问题解决方案不 ...
- Python 让PIP源使用国内镜像,提升下载速度和安装成功率
对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...
- 安装vscode with springboot
1.安装jdk8 2.下载vscode,一切按照默认配置完成安装.下载地址:https://code.visualstudio.com 3.安装完成后,运行vscode.如果没有任何反应,在命令行上运 ...
- 打造高可靠与高性能的React同构解决方案
前言 随着React的兴起, 结合Node直出的性能优势和React的组件化,React同构已然成为趋势之一.享受技术福利的同时,直面技术挑战,在复杂场景下,挑战10倍以上极致的性能优化. 什么是同构 ...
- iphone6 inline-flex兼容问题
在编写微信端页面时,遇到这样的问题:position属性为flex的导航栏,其li标签在其余设备上显示正常,但在iphone6上浮动错误. 究其原因,是iphone6不支持position属性中的fl ...