最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
五款js身份证验证代码
时间:2010-09-16 编辑:简简单单 来源:一聚教程网
方法二
js身份证号码验证函数 支持带x的号码
//--身份证号码验证-支持新的带x身份证
functionisidcardno(num)
{
varfactorarr=newarray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
varerror;
varvararray=newarray();
varintvalue;
varlngproduct=0;
varintcheckdigit;
varintstrlen=num.length;
varidnumber=num;
//initialize
if((intstrlen!=15)&&(intstrlen!=18)){
//error="输入身份证号码长度不对!";
//alert(error);
//frmadduser.txtidcard.focus();
returnfalse;
}
//checkandsetvalue
for(i=0;ivararray[i]=idnumber.charat(i);
if((vararray[i]<'0'||vararray[i]>'9')&&(i!=17)){
//error="错误的身份证号码!.";
//alert(error);
//frmadduser.txtidcard.focus();
returnfalse;
}elseif(i<17){
vararray[i]=vararray[i]*factorarr[i];
}
}
if(intstrlen==18){
//checkdate
vardate8=idnumber.substring(6,14);
if(checkdate(date8)==false){
//error="身份证中日期信息不正确!.";
//alert(error);
returnfalse;
}
//calculatethesumoftheproducts
for(i=0;i<17;i++){
lngproduct=lngproduct+vararray[i];
}
//calculatethecheckdigit
intcheckdigit=12-lngproduct%11;
switch(intcheckdigit){
case10:
intcheckdigit='x';
break;
case11:
intcheckdigit=0;
break;
case12:
intcheckdigit=1;
break;
}
//checklastdigit
if(vararray[17].touppercase()!=intcheckdigit){
//error="身份证效验位错误!...正确为:"+intcheckdigit+".";
//alert(error);
returnfalse;
}
}
else{//lengthis15
//checkdate
vardate6=idnumber.substring(6,12);
if(checkdate(date6)==false){
//alert("身份证日期信息有误!.");
returnfalse;
}
}
//alert("correct.");
returntrue;
}
function check(){
//alert(event.keycode);
if(event.keycode == 13){
checkid();
}
}
function checkid(id){
var idnum = id;
//alert(idnum);
var errors=new array(
"验证通过",
"身份证号码位数不对",
"身份证含有非法字符",
"身份证号码校验错误",
"身份证地区非法"
);
//身份号码位数及格式检验
var re;
var len = idnum.length;
//身份证位数检验
if(len != 15 && len != 18){
return errors[1];
}else if(len == 15){
re = new regexp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
}else{
re = new regexp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})([0-9xx])$/);
}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_array = new array();
idcard_array = idnum.split("");
//地区检验
if(area[parseint(idnum.substr(0,2))]==null) {
return errors[4];
}
//出生日期正确性检验
var a = idnum.match(re);
if (a != null){
if (len==15){
var dd = new date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var flag = dd.getyear()==a[3]&&(dd.getmonth()+1)==a[4]&&dd.getdate()==a[5];
}
else if(len == 18){
var dd = new date(a[3]+"/"+a[4]+"/"+a[5]);
var flag = dd.getfullyear()==a[3]&&(dd.getmonth()+1)==a[4]&&dd.getdate()==a[5];
}
if (!flag) {
return "身份证出生日期不对!";
}
//检验校验位
if(len == 18){
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);//判断校验位
//检测id的校验位
if(m == idcard_array[17]){
return "";
}
else{
return errors[3];
}
}
}else{
return errors[2];
}
return "";
}
js身份证验证五
....
身份证号:
出生日期:
年龄:
....
**
*javascript部分
***
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 = new array();
var intvalue;
var lngproduct = 0;
var intcheckdigit;
var intstrlen = num.length;
var idnumber = num;
// 开始测试if(idnumber!=""){
if ((intstrlen != 18)) {
error = "输入身份证号码长度不对!";
alert(error);
document.getelementbyidx("emp_idcardno").focus();
return false;
}
for(i=0;ivararray[i] = idnumber.charat(i);
if ((vararray[i] < '0' || vararray[i] > '9') && (i != 17)) {
error = "错误的身份证号码!.";
alert(error);
document.getelementbyidx("emp_idcardno").focus();
return false;
} else if (i < 17) {
vararray[i] = vararray[i]*factorarr[i];
}
}
if (intstrlen == 18) {
//取出身份证上的日期var date8 = idnumber.substring(6,14);
if (checkdate(date8) == false) {
error = "身份证中日期信息不正确!.";
alert(error);
document.getelementbyidx("emp_idcardno").focus();
return false;
}
// 累积和
for(i=0;i<17;i++) {
lngproduct = lngproduct + vararray[i];
}
// 计算出后一位数intcheckdigit = 12 - lngproduct % 11;
switch (intcheckdigit) {
case 10:
intcheckdigit = 'x';
break;
case 11:
intcheckdigit = 0;
break;
case 12:
intcheckdigit = 1;
break;
}
// 判断所传身份证最后一位是否正确if (vararray[17].touppercase() != intcheckdigit) {
error = "身份证效验位错误!";
alert(error);
document.getelementbyidx("emp_idcardno").focus();
return false;
}else{
var cyear=date8.substring(0,4);
var cmonth=date8.substring(4,6);
var cdate=date8.substring(6,8);
var nobir=cyear+"-"+cmonth+"-"+cdate;
if(cheackdate_js(nobir)){
document.getelementbyidx("emp_birthday").value=cyear+"-"+cmonth+"-"+cdate;
var now=new date();
document.getelementbyidx("emp_age").value=""+(now.getyear()-cyear);
return true;
}else{
error = "错误的身份证号码";
alert(error);
document.getelementbyidx("emp_idcardno").focus();
}
}
}
else{
var date6 = idnumber.substring(6,12);
if (checkdate(date6) == false) {
alert("身份证日期信息有误!.");
document.getelementbyidx("emp_idcardno").focus();
return false;
}
return true
}}
return true;
}*
*判断日期格式是否符合不超过今天的yyyy-mm-dd
*
function cheackdate_js(dates){
var nowdates=new date();
var nowdate=nowdates.getyear();
var nowdatem=nowdates.getmonth()+1;
var nowdated=nowdates.getdate();
var nowdate0=nowdates.getyear()-100;
if(dates!=""){
if(dates.isdate()){
var d=dates.split("-");
var newdate;
var newdatem;
var newdated;
if(d!=null){var newdate=d[0];
var newdatem=d[1];
var newdated=d[2];
}if(newdate>nowdate||newdate
//alert("输入的日期无效!");
return false;
}if(newdate==nowdate){
if(newdatem>nowdatem){
//alert("输入的日期无效!");
return false;
}
if(newdatem==nowdatem){
if(newdated>nowdated){
//alert("输入的日期无效!");
return false;
}
}if(newdatereturn true;
}
}
return true;
}else{
//alert("输入的日期错误 不符合yyyy-mm-dd格式!提示:(1988-02-06 或者 1988-12-06)");
return false;
}}
}
-
下一个: 点击图片刷新验证码的代码
相关文章
- js 可区别省份身份证验证代码 08-23
- 验证身份证号js代码 02-16
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31