js身份证验证超强脚本_表单特效

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];
alert(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];
alert(Errors[0]);
else return Errors[2];
alert(Errors[2]);
break;
case 18:
//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(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]; //检测ID的校验位
else return Errors[3];
alert(Errors[3]);
}
else return Errors[2];
alert(Errors[2]);
break;
default:
return Errors[1];
alert(Errors[1]);
break;
}
}

时间: 2024-09-03 03:02:39

js身份证验证超强脚本_表单特效的相关文章

28个JS验证函数收集_表单特效

JS验证函数的调用方法和注意: 1.给表单设置onsubmit="return test()",配合<input type="submit" name="Submit" value="check"> 进行提交. 2.<input type=text onkeydown="test();"> //当鼠标按下直接调用函数验证 3.<input type=text onblur=&q

实用的JS表单验证提示效果_表单特效

表单验证提示效果 帐号: 注册帐号(只支持数字和字母,如:love,love520) 密码: 请输入密码,请最少输入最少6位最多12位密码 确认密码: 请再输入一次上面的密码 邮箱: 请输入邮箱(Email),推荐使用网易邮箱@163.com 生日: 198319841985年56712月56712日请输入你的生日 QQ/MSN: 请输入你的QQ或MSN号码 电话: 请输入你的电话

js 操作select相关方法函数_表单特效

1.判断select选项中 是否存在value="paravalue"的item2.向select选项中 加入一个item3.从select选项中 删除一个item4.修改select选项中 value="paravalue"的text为"paratext"5.设置select中text="paratext"的第一个item为选中6.设置select中value="paravalue"的item为选中7.得

js 表单验证方法(实用)_表单特效

//下面验证的是长度 function checkTextLen(textId){ var len = 0; var checkField=document.getElementById(textId); var inputstring = checkField.value; var string_length = inputstring.length; if (string_length == 0) { return 0; } for (var i=0;i<string_length;i++)

基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼_表单特效

增加validate-ajax以支持ajax验证  增加validate-pattern直接通过正则表达式的认证  修改validate-equlas以验证密码与确认密码的问题  增加less-than与great-than的验证以支持开始日期与结束日期相比较的问题  增加validation之间内部依赖的支持,  欢迎大家提出改进,以便框架完成的更好如果需要,我会在将来开发出与服务端结合的开发框架,如struts and struts2  并且感谢原作者这么棒的Idea: http://tet

改变文本框字体颜色的js脚本_表单特效

红色绿色 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

常用js脚本_表单特效

这些都是工作的时候用到的,希望以后都可以用到 // "":,.!: typeof(objectName) == ''undefined'' // 定义常量 ------------------------------------------------------------------------ var TxtReadOnlyBgColor = "#EEEEEE" // 当输入框是Readonly属性时的背景色 /*====================函数说

js几个验证函数代码_表单特效

复制代码 代码如下: //检查是否非空 function notEmpty(obj, msg) { str = obj.value; str1 = ""; for (i = 0; i < str.length; i++) { if (str.charAt(i) != " ") { str1 = str.substr(i, str.length); break; } } if (str1 == "") { alert(msg); obj.va

js select 控制实现代码_表单特效

实现代码: 复制代码 代码如下: <select id=test11 size=5 style="width:50px"></select> <select id="test" style="width:50px"></select> <button onclick='test[test.length]=new Option("1","12");'>