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[];
}
}

.NET后台验证点这里

JS身份证验证的更多相关文章

  1. 【原创】贡献一个项目中用到的js身份证验证-超级准!!!

    前言 百度百科解释:身份证号码 首先贡献一个大神的链接:js验证身份证超准 代码 function checkIdcard(idcard) { var Errors = new Array( &quo ...

  2. js身份证验证类

    var IDCard = function () { //---------------------------------------------------------- // 功能:根据身份证号 ...

  3. js身份证验证-超级准!!!

    function checkIdcard(idcard) { var Errors = new Array( "验证通过!", "身份证号码位数不对!", &q ...

  4. js身份证验证代码

    var idCardNoUtil = { provinceAndCitys: {11:"北京",12:"天津",13:"河北",14:&qu ...

  5. 身份证验证JS代码

    身份证验证JS程序function checkidcardfun(code) { var city = {11: "北京", 12: "天津", 13: &qu ...

  6. Js完美验证15/18身份证,Js验证身份证,支持15/18位

    Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...

  7. js邮箱验证,身份证验证,正则表达式

    邮箱验证: html部分: 邮箱验证:<input type="text" id="mail" value="" / onkeyup= ...

  8. 基于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 ...

  9. JS脚本验证大全

    /** * 2009-10-01 * 贺  臣 * 情  缘 * js各种表单数据验证 *//***************************************************** ...

随机推荐

  1. EM算法小结

    一.什么是EM算法? EM算法是机器学习中一个很重要的算法,即期望最大化算法,主要包括以下两个步骤: E步骤:estimate the expected values M步骤:re-estimate ...

  2. testng入门教程6 TestNG忽略测试

    有时,我们的代码是没有准备好,如果测试用例写入到测试方法/代码将无法运行,在这种情况下,@Test(enabled = false)有助于禁用此测试案例. 测试方法是标注了@Test(enabled ...

  3. django学习网站

    http://www.ziqiangxuetang.com/django/django-qrcode.html

  4. 关于在ASP.NET中使用JavaScript的建议

    一个很恼人的情况,就是当你使用JS在一个ASP,NET应用程序中引用一个在模板页初始化的服务器控件的时候: 比如,我们在模板页有一个TextBox的服务器控件,而且我们想要去获取他的Text:如果你使 ...

  5. python 爬虫煎蛋网

    import urllib.request import os from urllib import error import re import base64 def url_open(url): ...

  6. Neutron网络学习

    学习 Neutron 系列文章: 转http://www.cnblogs.com/sammyliu/p/4622563.html (1)Neutron 所实现的网络虚拟化 (2)Neutron Ope ...

  7. 数据仓库基础(二)ETL

    本文转载自:http://www.cnblogs.com/evencao/archive/2013/06/14/3135529.html ETL在数据仓库中具有以下的几个特点: 数据流动具有周期性: ...

  8. php 获取随机数的几个方式

    php 获取随机数的几个方式 1.直接获取从min-max的数,例如1-20:$randnum = mt_rand(1, 20); 2.在一个数组里面随机选择一个(验证码的时候需要字母.数字混合的情况 ...

  9. keepalived+lvs高可用集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  10. iOS xcode创建静态库封装自己的SDK及使用

    https://www.cnblogs.com/JustForHappy/p/5773039.html 一,静态库和动态库的区别在这里就不说了,个人感觉如果是自己封装提供别人下载的话应该是静态库比较方 ...