身份证号验证正则表达式

来源:互联网 发布:方舟生存进化怪物数据 编辑:程序博客网 时间:2024/05/06 12:02
身份证号验证正则表达式
梅花雨的脚本
<SCRIPT      LANGUAGE="javascript">
function      isIdCardNo(num)
{
        if      (isNaN(num))      {alert("输入的不是数字!");      return      false;}
        var      len      =      num.length,      re;      
        if      (len      ==      15)
                re      =      new      RegExp(/^(/d{6})()?(/d{2})(/d{2})(/d{2})(/d{3})$/);
        else      if      (len      ==      18)
                re      =      new      RegExp(/^(/d{6})()?(/d{4})(/d{2})(/d{2})(/d{3})(/d)$/);
        else      {alert("输入的数字位数不对!");      return      false;}
        var      a      =      num.match(re);
        if      (a      !=      null)
        {
                if      (len==15)
                {
                        var      D      =      new      Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
                        var      B      =      D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
                }
                else
                {
                        var      D      =      new      Date(a[3]+"/"+a[4]+"/"+a[5]);
                        var      B      =      D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
                }
                if      (!B)      {alert("输入的身份证号      "+      a[0]      +"      里出生日期不对!");      return      false;}
        }
        return      true;
}
isIdCardNo("330103780133103");
isIdCardNo("330103780123103");
isIdCardNo("330103197801231030");
</SCRIPT>
秋水的
更健壮的  地区和身份证的关系也判断到  还有性别
<script>
var      

 

aCity={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:"国外"}
        
function      cidInfo(sId){
var      iSum=0
var      info=""
if(!/^/d{17}(/d|x)$/i.test(sId))return      false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return      "Error:非法地区";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var      d=new      Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+      (d.getMonth()+1)      +      "-"      +      d.getDate()))return      "Error:非法生日";
for(var      i      =      17;i>=0;i      --)      iSum      +=      (Math.pow(2,i)      %      11)      *      parseInt(sId.charAt(17      -      i),11)
if(iSum%11!=1)return      "Error:非法证号";
return      aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
document.write(cidInfo("220283198011200331"),"<br/>");
</script>  

原创粉丝点击