色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 檢測身份證號

錢旭東1年前8瀏覽0評論

在現代生活中,身份證號被廣泛使用,如注冊網站、申請貸款、辦理證件等。但是,很多人并不知道如何正確檢測一個身份證號是否合法。這時 JavaScript 可以起到很大的作用,通過代碼判斷一個身份證號是否有效。

一個合法的身份證號應該滿足以下要求:

  • 18位長(如不足,前面可以使用0補全)
  • 最后一位可能是數字或字母X(表示10),其他位置必須是數字
  • 前2位是省的代碼
  • 第3-4位是城市代碼
  • 第5-6位是區縣代碼
  • 第7-14位是生日
  • 第15-17位可以是歷年度的順序編號,也可以是未知的其他信息

我們可以定義一個函數來檢測一個身份證號是否合法:

function checkIDCard(idcard){
var Errors=new Array("驗證通過!","身份證號碼位數不對!","身份證號碼出生日期超出范圍或含有非法字符!","身份證號碼校驗錯誤!","您的輸入不是正確的身份證號碼,請重新輸入!");
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 Y,JYM;
var S,M;
var idcard_array=idcard.split("");
if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
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)%400==0){
if(parseInt(idcard.substr(12,2))>29){
return Errors[2];
}
}
else{
if(parseInt(idcard.substr(12,2))>28){
return Errors[2];
}
}
return Errors[0];
break;
case 18:
if(parseInt(idcard.substr(6,4))%4==0||(parseInt(idcard.substr(6,4))%100==0&&parseInt(idcard.substr(6,4))%4==0)){
if(parseInt(idcard.substr(10,2))>12||parseInt(idcard.substr(10,2))==0){
return Errors[2];
}
if(parseInt(idcard.substr(12,2))>31||parseInt(idcard.substr(12,2))==0){
return Errors[2];
}
}
else{
if(parseInt(idcard.substr(10,2))>12||parseInt(idcard.substr(10,2))==0){
return Errors[2];
}
if(parseInt(idcard.substr(12,2))>30||parseInt(idcard.substr(12,2))==0){
return Errors[2];
}
}
if(parseInt(idcard.substr(14,2))%2==0){
return Errors[3];
}
if(area[parseInt(idcard.substr(0,2))]==null){
return Errors[4];
}
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])+parseInt(idcard_array[8])+parseInt(idcard_array[9]);
Y=S%11;
M="F";
JYM="10X98765432";
M=JYM.substr(Y,1);
if(M!=idcard_array[17]){
return Errors[3];
}
return Errors[0];
break;
default:
return Errors[1];
break;
}
}

該函數接受一個身份證號作為參數,返回一個字符串。

  • 如果身份證號合法,返回“驗證通過!”
  • 如果身份證號位數不對,返回“身份證號碼位數不對!”
  • 如果身份證號出生日期超出范圍或含有非法字符,返回“身份證號碼出生日期超出范圍或含有非法字符!”
  • 如果身份證號校驗錯誤,返回“身份證號碼校驗錯誤!”
  • 如果身份證號不符合規范,返回“您的輸入不是正確的身份證號碼,請重新輸入!”

下面是一個使用該函數的例子:

var idcard = "37098319931205999X";
console.log(checkIDCard(idcard)); // 驗證通過!

以上就是使用 JavaScript 檢測身份證號的方法,希望這篇文章可以對大家有所幫助。