以下に示すように:
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 isCardID(sId){
var iSum=0;
var info="" ;
if(!/^d{17}(d|x)$/i.test(sId)) return "ID の長さまたは形式入力したカードが間違っています";
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null) return "あなたのIDカードの地域は不正です" ;
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 "ID カードの生年月日は不正です";
for(var i = 17;i>=0;i --) iSum = (Math.pow (2,i) % 11) * parseInt(sId .charAt(17 - i),11) ;
if(iSum !=1) return "入力した ID 番号は不正です"; //aCity[parseInt(sId.substr(0 ,2))] "," sBirthday "," (sId.substr(16,1)%2?"男性":"女性")
}