⾝份证号码验证正则表达式及⽤法(包括:位数、规则等)
//sfz.js页⾯
function CheckIDCard(StrNumber)
{
//判断⾝份证号码格式函数
//公民⾝份号码是特征组合码,
//排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码
//⾝份证号码长度判断
if(StrNumber.length<15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18)
{
return {"code":201,"errormsg":"填写的⾝份证号码长度不正确,请重新填写!"};
}
//⾝份证号码最后⼀位可能是超过100岁⽼年⼈的X.X也可以代表是阿拉伯数字10的意思
//所以排除掉最后⼀位数字进⾏数字格式测试,最后⼀位数字有最后⼀位数字的算法
var Ai;
if(StrNumber.length==18)
{
Ai = StrNumber.substring(0,17);
}
else
{
Ai =StrNumber.substring(0,6)+"19"+StrNumber.substring(6,9);
正则匹配身份证}
//调⽤数字判断函数IsNumeric()
if(IsNumeric(Ai)==false)
{
return {"code":201,"errormsg":"⾝份证号码数字字符串不正确,请重新填写!"};
}
var strYear,strMonth,strDay,strBirthDay;
strYear = parseInt(Ai.substr(6,4));
strMonth = parseInt(Ai.substr(10,2)) ;
strDay = parseInt(Ai.substr(12,2));
//调⽤⽇期判断函数IsValidDate()
if (IsValidDate(strYear,strMonth,strDay)==false)
{
return {"code":201,"errormsg":"⾝份证号码验证失败!"};
}
var arrVerifyCode = new Array("1","0","x","9","8","7","6","5","4","3","2");
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var k,TotalmulAiWi=0;
for (k=0; k<17;k++)
{
TotalmulAiWi = TotalmulAiWi + parseInt(Ai.substr(k,1)) * Wi[k];
}
/
/alert("⾝份证号码最后⼀位的识别码是:"+TotalmulAiWi);
var modValue =TotalmulAiWi % 11 ;
var strVerifyCode = arrVerifyCode[modValue];
Ai = Ai+strVerifyCode;
//alert("⾝份证号码"+StrNumber+"与正确的号码"+Ai+"⼀致!");
if((StrNumber.length==18)&&(StrNumber!=Ai))
{
return {"code":201,"errormsg":"⾝份证号码验证失败!"};
}
return {"code":200,"msg":"OK"};
}
/
/数字判断函数IsNumeric()//数字判断函数IsNumeric()
function IsNumeric(oNum)
{
return /^\d+$/.test(oNum)
}
function IsValidDate(iY, iM, iD) {
if (iY>2200 || iY<1900 || !IsNumeric(iY)){
return false;
}
if (iM>12 || iM<=0 || !IsNumeric(iM)){
return false;
}
if (iD>31 || iD<=0 || !IsNumeric(iD)){
return false;
}
return true;
}
⽤法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!--引⽤⾝份证验证的正则表达式-->
<script type="text/javascript" src="../js/sfz.js"></script>
<title>⽆标题⽂档</title>
</head>
<body>
<input id="num" onblur="num0()" class="inp fl" type="text"/>
<div class="fl" id="num-a"></div>
</body>
</html>
<script type="text/javascript">
function num0()
{
var mail = ElementById("num").value;
var ckresult=CheckIDCard(mail);
de!=200)
{
changdu = "<img style='margin-left:15px; margin-top:10px; float:left' src='../images/叉号.png' /><span style='color:#FF0004; font-size:14px; margin-top:10px; float:left; margin-left:10px;'>"+sg+"</span> $("#num-a").html(changdu );
}
else
{
changdu = "<img style='margin-left:15px; margin-top:10px; float:left' src='../images/对号.png' /><span style='color:#FF0004; font-size:14px; margin-top:10px; float:left; margin-left:10px;'></span>"; $("#num-a").html(changdu );
}
}
</script>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论