<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script>
function chkreg(){
var bool=true;
var card = $('#number').val();
var str="";
//是否为空
if(card === '')
{
bool=false;
str="为空";
}
//校验长度,类型
else if(isCardNo(card) === false)
{
bool=false;
str="长度";
}
//校验不连续重复
else if(checkRepeat(card) === false)
{
bool=false;
str="连续重复";
}
//检查省份
else if(checkProvince(card) === false)
{
bool=false;
str="省份";
}
if(!bool){
$('#number').focus();
$("#errortip").text("身份证号码有误:"+str);
}else{
$("#errortip").text("");
}
return bool;
}
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
isCardNo = function(card)
{
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
if(reg.test(card) === false)
{
return false;
}
return true;
};
//校验不连续重复
checkRepeat= function(card)
{
var arr=card.split("");
var a=arr[0];
for (var i = 0; i < arr.length; i++) {
if(arr[i] != a)
{
return true;
}
}
return false;
};
//取身份证前两位,校验省份
checkProvince = function(card)
{
var vcity={ 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 province = card.substr(0,2);
if(vcity[province] == undefined)
{
return false;
}
return true;
};
</script>
<form name="formreg" action="www.baidu.com" method="post" onsubmit="return chkreg();">
身份证:<input name="number" type="text" id="number" />
<span style="color:#FF0000" id="errortip"></span>
<input type="submit" id="subreg" name="button" value="提交" class="mybtn"/>
</form>