身份證號驗證正則表達式

身份證號驗證正則表達式
梅花雨的腳本
<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>  

發佈了24 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章