identity_id.js 11.7 KB
var surname="\u8d75|\u94b1|\u5b59|\u674e|\u5468|\u5434|\u90d1|\u738b|\u51af|\u9648|\u891a|\u536b|\u848b|\u6c88|\u97e9|\u6768|\u6731|\u79e6|\u5c24|\u8bb8|\u4f55|\u5415|\u65bd|\u5f20|\u5b54|\u66f9|\u4e25|\u534e|\u91d1|\u9b4f|\u9676|\u59dc|\u621a|\u8c22|\u90b9|\u55bb|\u67cf|\u6c34|\u7aa6|\u7ae0|\u4e91|\u82cf|\u6f58|\u845b|\u595a|\u8303|\u5f6d|\u90ce|\u9c81|\u97e6|\u660c|\u9a6c|\u82d7|\u51e4|\u82b1|\u65b9|\u4fde|\u4efb|\u8881|\u67f3|\u9146|\u9c8d|\u53f2|\u5510|\u8d39|\u5ec9|\u5c91|\u859b|\u96f7|\u8d3a|\u502a|\u6c64|\u6ed5|\u6bb7|\u7f57|\u6bd5|\u90dd|\u90ac|\u5b89|\u5e38|\u4e50|\u4e8e|\u65f6|\u5085|\u76ae|\u535e|\u9f50|\u5eb7|\u4f0d|\u4f59|\u5143|\u535c|\u987e|\u5b5f|\u5e73|\u9ec4|\u548c|\u7a46|\u8427|\u5c39|\u59da|\u90b5|\u6e5b|\u6c6a|\u7941|\u6bdb|\u79b9|\u72c4|\u7c73|\u8d1d|\u660e|\u81e7|\u8ba1|\u4f0f|\u6210|\u6234|\u8c08|\u5b8b|\u8305|\u5e9e|\u718a|\u7eaa|\u8212|\u5c48|\u9879|\u795d|\u8463|\u6881|\u675c|\u962e|\u84dd|\u95f5|\u5e2d|\u5b63|\u9ebb|\u5f3a|\u8d3e|\u8def|\u5a04|\u5371|\u6c5f|\u7ae5|\u989c|\u90ed|\u6885|\u76db|\u6797|\u5201|\u953a|\u5f90|\u90b1|\u9a86|\u9ad8|\u590f|\u8521|\u7530|\u6a0a|\u80e1|\u51cc|\u970d|\u865e|\u4e07|\u652f|\u67ef|\u661d|\u7ba1|\u5362|\u83ab|\u7ecf|\u623f|\u88d8|\u7f2a|\u5e72|\u89e3|\u5e94|\u5b97|\u4e01|\u5ba3|\u8d32|\u9093|\u90c1|\u5355|\u676d|\u6d2a|\u5305|\u8bf8|\u5de6|\u77f3|\u5d14|\u5409|\u94ae|\u9f9a|\u7a0b|\u5d47|\u90a2|\u6ed1|\u88f4|\u9646|\u8363|\u7fc1|\u8340|\u7f8a|\u65bc|\u60e0|\u7504|\u9eb4|\u5bb6|\u5c01|\u82ae|\u7fbf|\u50a8|\u9773|\u6c72|\u90b4|\u7cdc|\u677e|\u4e95|\u6bb5|\u5bcc|\u5deb|\u4e4c|\u7126|\u5df4|\u5f13|\u7267|\u9697|\u5c71|\u8c37|\u8f66|\u4faf|\u5b93|\u84ec|\u5168|\u90d7|\u73ed|\u4ef0|\u79cb|\u4ef2|\u4f0a|\u5bab|\u5b81|\u4ec7|\u683e|\u66b4|\u7518|\u94ad|\u5386|\u620e|\u7956|\u6b66|\u7b26|\u5218|\u666f|\u8a79|\u675f|\u9f99|\u53f6|\u5e78|\u53f8|\u97f6|\u90dc|\u9ece|\u84df|\u6ea5|\u5370|\u5bbf|\u767d|\u6000|\u84b2|\u90b0|\u4ece|\u9102|\u7d22|\u54b8|\u7c4d|\u8d56|\u5353|\u853a|\u5c60|\u8499|\u6c60|\u4e54|\u9633|\u90c1|\u80e5|\u80fd|\u82cd|\u53cc|\u95fb|\u8398|\u515a|\u7fdf|\u8c2d|\u8d21|\u52b3|\u9004|\u59ec|\u7533|\u6276|\u5835|\u5189|\u5bb0|\u90e6|\u96cd|\u5374|\u74a9|\u6851|\u6842|\u6fee|\u725b|\u5bff|\u901a|\u8fb9|\u6248|\u71d5|\u5180|\u50ea|\u6d66|\u5c1a|\u519c|\u6e29|\u522b|\u5e84|\u664f|\u67f4|\u77bf|\u960e|\u5145|\u6155|\u8fde|\u8339|\u4e60|\u5ba6|\u827e|\u9c7c|\u5bb9|\u5411|\u53e4|\u6613|\u614e|\u6208|\u5ed6|\u5ebe|\u7ec8|\u66a8|\u5c45|\u8861|\u6b65|\u90fd|\u803f|\u6ee1|\u5f18|\u5321|\u56fd|\u6587|\u5bc7|\u5e7f|\u7984|\u9619|\u4e1c|\u6b27|\u6bb3|\u6c83|\u5229|\u851a|\u8d8a|\u5914|\u9686|\u5e08|\u5de9|\u538d|\u8042|\u6641|\u52fe|\u6556|\u878d|\u51b7|\u8a3e|\u8f9b|\u961a|\u90a3|\u7b80|\u9976|\u7a7a|\u66fe|\u6bcb|\u6c99|\u4e5c|\u517b|\u97a0|\u987b|\u4e30|\u5de2|\u5173|\u84af|\u76f8|\u67e5|\u540e|\u8346|\u7ea2|\u6e38|\u7afa|\u6743|\u902e|\u76cd|\u76ca|\u6853|\u516c|\u4e07\u4fdf|\u53f8\u9a6c|\u4e0a\u5b98|\u6b27\u9633|\u590f\u4faf|\u8bf8\u845b|\u95fb\u4eba|\u4e1c\u65b9|\u8d6b\u8fde|\u7687\u752b|\u5c09\u8fdf|\u516c\u7f8a|\u6fb9\u53f0|\u516c\u51b6|\u5b97\u653f|\u6fee\u9633|\u6df3\u4e8e|\u5355\u4e8e|\u592a\u53d4|\u7533\u5c60|\u516c\u5b59|\u4ef2\u5b59|\u8f69\u8f95|\u4ee4\u72d0|\u949f\u79bb|\u5b87\u6587|\u957f\u5b59|\u6155\u5bb9|\u53f8\u5f92|\u53f8\u7a7a|\u53ec|\u6709|\u821c|\u53f6\u8d6b\u90a3\u62c9|\u4e1b|\u5cb3|\u5bf8|\u8d30|\u7687|\u4fa8|\u5f64|\u7aed|\u7aef|\u8d6b|\u5b9e|\u752b|\u96c6|\u8c61|\u7fe0|\u72c2|\u8f9f|\u5178|\u826f|\u51fd|\u8292|\u82e6|\u5176|\u4eac|\u4e2d|\u5915|\u4e4b|\u7ae0\u4f73|\u90a3\u62c9|\u51a0|\u5bbe|\u9999|\u679c|\u4f9d\u5c14\u6839\u89c9\u7f57|\u4f9d\u5c14\u89c9\u7f57|\u8428\u561b\u5587|\u8d6b\u820d\u91cc|\u989d\u5c14\u5fb7\u7279|\u8428\u514b\u8fbe|\u94ae\u795c\u7984|\u4ed6\u5854\u5587|\u559c\u5854\u814a|\u8bb7\u6bb7\u5bcc\u5bdf|\u53f6\u8d6b\u90a3\u5170|\u5e93\u96c5\u5587|\u74dc\u5c14\u4f73|\u8212\u7a46\u7984|\u7231\u65b0\u89c9\u7f57|\u7d22\u7ef0\u7edc|\u7eb3\u5587|\u4e4c\u96c5|\u8303\u59dc|\u78a7\u9c81|\u5f20\u5ed6|\u5f20\u7b80|\u56fe\u95e8|\u592a\u53f2|\u516c\u53d4|\u4e4c\u5b59|\u5b8c\u989c|\u9a6c\u4f73|\u4f5f\u4f73|\u5bcc\u5bdf|\u8d39\u83ab|\u8e47|\u79f0|\u8bfa|\u6765|\u591a|\u7e41|\u620a|\u6734|\u56de|\u6bd3|\u7a0e|\u8364|\u9756|\u7eea|\u6108|\u7855|\u7262|\u4e70|\u4f46|\u5de7|\u679a|\u6492|\u6cf0|\u79d8|\u4ea5|\u7ecd|\u4ee5|\u58ec|\u68ee|\u658b|\u91ca|\u5955|\u59d2|\u670b|\u6c42|\u7fbd|\u7528|\u5360|\u771f|\u7a70|\u7fe6|\u95fe|\u6f06|\u8d35|\u4ee3|\u8d2f|\u65c1|\u5d07|\u680b|\u544a|\u4f11|\u8912|\u8c0f|\u9510|\u768b|\u95f3|\u5728|\u6b67|\u79be|\u793a|\u662f|\u59d4|\u948a|\u9891|\u5b34|\u547c|\u5927|\u5a01|\u6602|\u5f8b|\u5192|\u4fdd|\u7cfb|\u6284|\u5b9a|\u5316|\u83b1|\u6821|\u4e48|\u6297|\u7962|\u7da6|\u609f|\u5b8f|\u529f|\u5e9a|\u52a1|\u654f|\u6377|\u62f1|\u5146|\u4e11|\u4e19|\u7545|\u82df|\u968f|\u7c7b|\u536f|\u4fdf|\u53cb|\u7b54|\u4e59|\u5141|\u7532|\u7559|\u5c3e|\u4f7c|\u7384|\u4e58|\u88d4|\u5ef6|\u690d|\u73af|\u77eb|\u8d5b|\u6614|\u4f8d|\u5ea6|\u65f7|\u9047|\u5076|\u524d|\u7531|\u548e|\u585e|\u655b|\u53d7|\u6cf7|\u88ad|\u8845|\u53d4|\u5723|\u5fa1|\u592b|\u4ec6|\u9547|\u85e9|\u90b8|\u5e9c|\u638c|\u9996|\u5458|\u7109|\u620f|\u53ef|\u667a|\u5c14|\u51ed|\u6089|\u8fdb|\u7b03|\u539a|\u4ec1|\u4e1a|\u8087|\u8d44|\u5408|\u4ecd|\u4e5d|\u8877|\u54c0|\u5211|\u4fce|\u4ef5|\u572d|\u5937|\u5fad|\u86ee|\u6c57|\u5b5b|\u4e7e|\u5e16|\u7f55|\u6d1b|\u6de6|\u6d0b|\u90b6|\u90f8|\u90ef|\u9097|\u909b|\u5251|\u8662|\u968b|\u84bf|\u8306|\u83c5|\u82cc|\u6811|\u6850|\u9501|\u949f|\u673a|\u76d8|\u94ce|\u659b|\u7389|\u7ebf|\u9488|\u7b95|\u5eb9|\u7ef3|\u78e8|\u8489|\u74ee|\u5f2d|\u5200|\u758f|\u7275|\u6d51|\u607d|\u52bf|\u4e16|\u4edd|\u540c|\u8681|\u6b62|\u6222|\u7762|\u51bc|\u79cd|\u6d82|\u8096|\u5df1|\u6ce3|\u6f5c|\u5377|\u8131|\u8c2c|\u8e49|\u8d67|\u6d6e|\u987f|\u8bf4|\u6b21|\u9519|\u5ff5|\u5919|\u65af|\u5b8c|\u4e39|\u8868|\u804a|\u6e90|\u59d3|\u543e|\u5bfb|\u5c55|\u51fa|\u4e0d|\u6237|\u95ed|\u624d|\u65e0|\u4e66|\u5b66|\u611a|\u672c|\u6027|\u96ea|\u971c|\u70df|\u5bd2|\u5c11|\u5b57|\u6865|\u677f|\u6590|\u72ec|\u5343|\u8bd7|\u5609|\u626c|\u5584|\u63ed|\u7948|\u6790|\u8d64|\u7d2b|\u9752|\u67d4|\u521a|\u5947|\u62dc|\u4f5b|\u9640|\u5f25|\u963f|\u7d20|\u957f|\u50e7|\u9690|\u4ed9|\u96bd|\u5b87|\u796d|\u9152|\u6de1|\u5854|\u7426|\u95ea|\u59cb|\u661f|\u5357|\u5929|\u63a5|\u6ce2|\u78a7|\u901f|\u799a|\u817e|\u6f6e|\u955c|\u4f3c|\u6f84|\u6f6d|\u8b07|\u7eb5|\u6e20|\u5948|\u98ce|\u6625|\u6fef|\u6c90|\u8302|\u82f1|\u5170|\u6a80|\u85e4|\u679d|\u68c0|\u751f|\u6298|\u767b|\u9a79|\u9a91|\u8c8a|\u864e|\u80a5|\u9e7f|\u96c0|\u91ce|\u79bd|\u98de|\u8282|\u5b9c|\u9c9c|\u7c9f|\u6817|\u8c46|\u5e1b|\u5b98|\u5e03|\u8863|\u85cf|\u5b9d|\u949e|\u94f6|\u95e8|\u76c8|\u5e86|\u559c|\u53ca|\u666e|\u5efa|\u8425|\u5de8|\u671b|\u5e0c|\u9053|\u8f7d|\u58f0|\u6f2b|\u7281|\u529b|\u8d38|\u52e4|\u9769|\u6539|\u5174|\u4e93|\u7766|\u4fee|\u4fe1|\u95fd|\u5317|\u5b88|\u575a|\u52c7|\u6c49|\u7ec3|\u5c09|\u58eb|\u65c5|\u4e94|\u4ee4|\u5c06|\u65d7|\u519b|\u884c|\u5949|\u656c|\u606d|\u4eea|\u6bcd|\u5802|\u4e18|\u4e49|\u793c|\u6148|\u5b5d|\u7406|\u4f26|\u537f|\u95ee|\u6c38|\u8f89|\u4f4d|\u8ba9|\u5c27|\u4f9d|\u72b9|\u4ecb|\u627f|\u5e02|\u6240|\u82d1|\u675e|\u5267|\u7b2c|\u96f6|\u8c0c|\u62db|\u7eed|\u8fbe|\u5ffb|\u516d|\u911e|\u6218|\u8fdf|\u5019|\u5b9b|\u52b1|\u7c98|\u8428|\u909d|\u8983|\u8f9c|\u521d|\u697c|\u57ce|\u533a|\u5c40|\u53f0|\u539f|\u8003|\u59ab|\u7eb3|\u6cc9|\u8001|\u6e05|\u5fb7|\u5351|\u8fc7|\u9ea6|\u66f2|\u7af9|\u767e|\u798f|\u8a00|\u7b2c\u4e94|\u4f5f|\u7231|\u5e74|\u7b2a|\u8c2f|\u54c8|\u58a8|\u5357\u5bab|\u8d4f|\u4f2f|\u4f74|\u4f58|\u725f|\u5546|\u897f\u95e8|\u4e1c\u95e8|\u5de6\u4e18|\u6881\u4e18|\u7434|\u540e|\u51b5|\u4ea2|\u7f11|\u5e05|\u5fae\u751f|\u7f8a\u820c|\u6d77|\u5f52|\u547c\u5ef6|\u5357\u95e8|\u4e1c\u90ed|\u767e\u91cc|\u94a6|\u9122|\u6c5d|\u6cd5|\u95eb|\u695a|\u664b|\u8c37\u6881|\u5bb0\u7236|\u5939\u8c37|\u62d3\u8dcb|\u58e4\u9a77|\u4e50\u6b63|\u6f06\u96d5|\u516c\u897f|\u5deb\u9a6c|\u7aef\u6728|\u989b\u5b59|\u5b50\u8f66|\u7763|\u4ec9|\u53f8\u5bc7|\u4e93\u5b98|\u9c9c\u4e8e|\u953a\u79bb|\u76d6|\u902f|\u5e93|\u90cf|\u9022|\u9634|\u8584|\u5389|\u7a3d|\u95fe\u4e18|\u516c\u826f|\u6bb5\u5e72|\u5f00|\u5149|\u64cd|\u745e|\u772d|\u6ce5|\u8fd0|\u6469|\u4f1f|\u94c1|\u8fee|";

function IsIdCard(idcard)
{
    idcard = idcard.toUpperCase();
    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:"国外"};
    var retflag=false;
    var idcard,Y,JYM;
    var S,M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    //地区检验
    if(area[parseInt(idcard.substr(0,2))]==null) return false;
    //身份号码位数及格式检验
    switch(idcard.length)
    {
        case 15:
            if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 ||
                ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.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(idcard)) return true;
            else return false;
            break;
        case 18:
            //18位身份号码检测
            //出生日期的合法性检查
            //闰年月日:((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]))
            //平年月日:((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]))
            if ( parseInt(idcard.substr(6,4)) % 4 == 0 ||
                (parseInt(idcard.substr(6,4)) % 100 == 0 &&parseInt(idcard.substr(6,4))%4 == 0 ))
            {
                ereg=/^[1-9][0-9]{5}19[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}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
            }
            else
            {
            ereg=/^[1-9][0-9]{5}19[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}[0-9Xx]$/;//平年出生日期的合法性正则表达式
            }
            if(ereg.test(idcard))
            {//测试出生日期的合法性
                //计算校验位
                S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
                + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
                + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
                + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
                + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
                + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
                + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
                + parseInt(idcard_array[7]) * 1
                + parseInt(idcard_array[8]) * 6
                + parseInt(idcard_array[9]) * 3 ;
                Y = S % 11;
                M = "F";
                JYM = "10X98765432";
                M = JYM.substr(Y,1);//判断校验位
                if(M == idcard_array[17]) true; //检测ID的校验位
                else return false;
            }
            else return false;
            break;
    default:
        return false;
        break;
    }
    return true;
}