从盛大通行证上摘下来的身份证验证js代码

代码如下:

<script language="javascript" type="text/javascript">
function CheckIdCardField(v_card) {
var reg = /^\d{15}(\d{2}[0-9X])?$/i;
if (!reg.test(v_card)) {
return false;
}
if (v_card.length == 15) {
var n = new Date();
var y = n.getFullYear();
if (parseInt("19" + v_card.substr(6, 2)) < 1900 || parseInt("19" + v_card.substr(6, 2)) > y) {
return false;
}
var birth = "19" + v_card.substr(6, 2) + "-" + v_card.substr(8, 2) + "-" + v_card.substr(10, 2);
if (!isDate(birth)) {
return false;
}
}
if (v_card.length == 18) {
var n = new Date();
var y = n.getFullYear();
if (parseInt(v_card.substr(6, 4)) < 1900 || parseInt(v_card.substr(6, 4)) > y) {
return false;
}
var birth = v_card.substr(6, 4) + "-" + v_card.substr(10, 2) + "-" + v_card.substr(12, 2);
if (!isDate(birth)) {
return false;
}
iW = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
iSum = 0;
for (i = 0; i < 17; i++) {
iC = v_card.charAt(i);
iVal = parseInt(iC);
iSum += iVal * iW[i];
}
iJYM = iSum % 11;
if (iJYM == 0) sJYM = "1";
else if (iJYM == 1) sJYM = "0";
else if (iJYM == 2) sJYM = "x";
else if (iJYM == 3) sJYM = "9";
else if (iJYM == 4) sJYM = "8";
else if (iJYM == 5) sJYM = "7";
else if (iJYM == 6) sJYM = "6";
else if (iJYM == 7) sJYM = "5";
else if (iJYM == 8) sJYM = "4";
else if (iJYM == 9) sJYM = "3";
else if (iJYM == 10) sJYM = "2";
var cCheck = v_card.charAt(17).toLowerCase();
if (cCheck != sJYM) {
return false;
}
}
return true;
}
</script>

(0)

相关推荐

  • js实现二代身份证号码验证详解

    废话少说,直接上代码,注释里解析的很清楚了,这里就不BB了. 复制代码 代码如下: /* 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码.  地址码表示编码对象常住户口所在县(市.旗.区)的行政区划代码.  出生日期码表示编码对象出生的年.月.日,其中年份用四位数字表示,年.月.日之间不用分隔符.  顺序

  • js身份证判断方法支持15位和18位

    复制代码 代码如下: //HTML页面上要有一个id为identity_card的input输入框,一个id为ipmessage的身份证错误或正确时提示消息的地方 <script> //身份证验证 $(document).ready(function(){ $("#identity_card").change(function(){ var idcard =$(this).val(); checkDate(idcard ); }); }); //身份证 function c

  • js简单实现根据身份证号码识别性别年龄生日

    根据身份证号码识别性别年龄生日的JS代码: 复制代码 代码如下: function discriCard(){ //获取输入身份证号码 var UUserCard = ""; //获取出生日期 UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14); //获取性别 if (parseInt(UUserCar

  • js 验证身份证信息有效性

    以下是根据身份证号码编码规则,使用JS对其进行有效性验证代码 IdCard-Validate.js代码如下: 复制代码 代码如下: /** * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:地区码 * yymmdd: 出生年月日 * xx: 顺序类编码,无法确定 * p: 性别,奇数为男,偶数为女 * <p /> * 身份证18位编码规则:dddddd yyyymmdd xxx y * dddddd:地区码 * yyyymmdd: 出生年月日 * xxx:顺序类

  • js身份证验证超强脚本

    function checkIdcard(idcard){ var Errors=new Array( "验证通过!", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!", "身份证地区非法!" ); var area={11:"北京",12:"天津",13:"河北",14:"山西&q

  • js实现身份证号码验证的简单实例

    以下是根据身份证号码编码规则,使用JS对其进行有效性验证代码 IdCard-Validate.js代码如下: 复制代码 代码如下: /** * 身份证15位编码规则:dddddd yymmdd xx p  * dddddd:地区码  * yymmdd: 出生年月日  * xx: 顺序类编码,无法确定  * p: 性别,奇数为男,偶数为女 * <p /> * 身份证18位编码规则:dddddd yyyymmdd xxx y  * dddddd:地区码  * yyyymmdd: 出生年月日  *

  • jsp导出身份证到excel时候格式不对但以X结尾的却可以

    今天早上客户跟我说excel导出身份证的时候显示有的对有的不对,我一看原来身份证以X结尾的可以,其它都显示不正确.身份正显示如图所示: 在网上搜了一下发现,原来excel看你数字列超过12位就会显示科学计数.而身份证一般都是18位所以显示这样. 解决办法就是在身份证这一列前面加"单引号".形如:'4206211111111111111 具体代码如下:<td style="border: 1px solid #000;">'<s:property v

  • js验证真实姓名与身份证号是否匹配

    最近的项目中用的需要调用实名认证的接口,实名认证接口价格相比短信而言高了不是几分钱,所以说调用实名认证的条件就要严格把关,因此用到js验证真实姓名与js验证身份证号. 进入正题 js验证真实姓名,是用的unicode字符的来进行匹配,而中国人的姓名长度一般都是2-4,所以重复匹配{2,4}次 1.js验证真实姓名 var regName =/^[\ue-\ufa]{,}$/; if(!regName.test(name)){ alert('真实姓名填写有误'); return false; }

  • js 第二代身份证号码的验证机制代码

    由于响应速度极快,可以肯定不是联机校验正确性的,那也就是说第二代身份证除了大家都知道的几位表示生日和性别的规则以外,还有另外的自我校验规则.于是翻开页面源码查看,发现这段js没有被压缩,所以规则也很好懂. 就在这里给大家科普下,不知道是不是火星了,呵呵. 以下代码来自这里,版权归盛大.当然,你也可以在维基百科找到更详细的介绍和算法. 复制代码 代码如下: iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); iSum = 0; for( i

  • 通过身份证号得到出生日期和性别的js代码

    //身份证校验 与得到生日代码 复制代码 代码如下: <script language="javascript"> function showBirthday(val) { var birthdayValue; if(15==val.length) { //15位身份证号码 birthdayValue = val.charAt(6)+val.charAt(7); if(parseInt(birthdayValue)<10) { birthdayValue = '20'

  • js验证身份证号有效性并提示对应信息

    直接上代码,逐行对代码进行研究,一定会有所收获. function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号"){ $("#span_username").show(); $("#span_username").html("身份证号不能为空"); return false; } //校验长度,类型 else if(isCardNo(allowanc

  • JS验证身份证有效性示例

    复制代码 代码如下: function checkIdcard(idcard){ var Errors=new Array( "验证通过", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!", "身份证地区非法!" ); var area={11:"北京",12:"天津",13:"河北",14:

  • js判断输入是否中文,数字,身份证等等js函数集合第1/3页

    * 判断指定的内容是否为空,若为空则弹出 警告框 */ function isEmpty(theValue, strMsg){ if(theValue==""){ alert(strMsg+"不能为空!"); return true; } return false; } /* 中文判断函数,允许生僻字用英文"*"代替 返回true表示是符合条件,返回false表示不符合 */ function isChinese(str){ var badCha

  • JS支持带x身份证号码验证函数

    <script type="text/javascript"> alert(isIdCardNo("440781197007220512")); //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);     var error;     var varArray = ne

随机推荐