<script>
var powers=new Array("7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2");
var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");
var sex="1"; //校验身份证号码的主调用
function validId(obj,sexObjId){
var _id=obj.value;
if(_id=="")
{
alert("请输入有效身份证号");
obj.focus();
return false;
}
if(_id.length==18){
valid=validId18(_id);
}
else
{
alert("请输入18位有效身份证号");
return false;
}
if(!valid){
alert("身份证号码有误,请检查!");
obj.focus();
return false;
}
if(sexObjId!="")
{
// setSex(sexObjId);
}
return true;
} //校验18位的身份证号码
function validId18(_id){
_id=_id+"";
var _num=_id.substr(0,17);
var _parityBit=_id.substr(17);
var _power=0;
for(var i=0;i< 17;i++){ //校验每一位的合法性
if(_num.charAt(i)<'0'||_num.charAt(i)>'9'){
return false;
break;
}else{ //加权
_power+=parseInt(_num.charAt(i))*parseInt(powers[i]); //设置性别
if(i==16&&parseInt(_num.charAt(i))%2==0){
sex="0";
}else{
sex="1";
}
}
} //取模
var mod=parseInt(_power)%11;
if(parityBit[mod]==_parityBit){
return true;
}
else{return false;}
}
function setSex(objId)
{
//设置性别
var sexSel=document.getElementsByName(objId);
//sexSel[0].disabled=false;
// sexSel[1].disabled=false;
if(sex == '1')
{
sexSel[0].checked=true;
}
else if(sex == '0')
{
sexSel[1].checked = true;
}
// sexSel[0].disabled=true;
//sexSel[1].disabled=true;
}
</script>
function validId15 (_id){
var flag = true;
//var _id=obj.value;
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:"国外"} ;
if(area[parseInt(_id.substr(0,2))]==null) flag = false;
if(flag && _id.length == 15){
if ((parseInt(_id.substr(6,2))+1900) % 4 == 0 || ((parseInt(_id.substr(6,2))+1900) % 100 == 0 && (parseInt(_id.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(_id)) flag = false;
}
//设置性别
sex=_id.slice(14,17)%2 ? "1" : "0";
return flag;
}
<input name="orderConsigneeAddress.idCard" onblur="validId(this,'orderConsigneeAddress.sex')" />