js中15位及18位身份證號碼的校驗

2021-07-26 03:56:36 字數 2856 閱讀 3306

15位身份證結構:

地區**(6位),年(2位)月(2位)日(2位),順序碼(3位,最後1位偶數代表女,奇數代表男)

18位身份證結構:

地區**(6位),年(4位)月(2位)日(2位),順序碼(3位,最後1位偶數代表女,奇數代表男),校驗碼(1位)

js**如下:

function checkidnumber() 

//校驗長度,型別

else if (iscardno(allowancepersonvalue) == false)

//檢查省份

else if (checkprovince(allowancepersonvalue) == false)

//校驗生日

else if (checkbirthday(allowancepersonvalue) == false)

//檢驗位的檢測

else if (checkparity(allowancepersonvalue) == false) else

}var vcity = ;

//檢查號碼是否符合規範,包括長度,型別

function iscardno(card) $)|(^\d(\d|x)$)/;

if (reg.test(card) == false)

return true;

}//取身份證前兩位,校驗省份

function checkprovince(card)

return true;

}//檢查生日是否正確

function checkbirthday(card) )(\d)(\d)(\d)(\d)$/;

var arr_data = card.match(re_fifteen);

var year = arr_data[2];

var month = arr_data[3];

var day = arr_data[4];

var birthday = new date('19' + year + '/' + month + '/' + day);

return verifybirthday('19' + year, month, day, birthday);

}//身份證18位時,次序為省(3位)市(3位)年(4位)月(2位)日(2位)校驗位(4位),校驗位末尾可能為x

if (len == '18') )(\d)(\d)(\d)(\d)([0-9]|x)$/;

var arr_data = card.match(re_eighteen);

var year = arr_data[2];

var month = arr_data[3];

var day = arr_data[4];

var birthday = new date(year + '/' + month + '/' + day);

return verifybirthday(year, month, day, birthday);

}return false;

}//校驗日期

function verifybirthday(year, month, day, birthday)

return false;

}return false;

}//校驗位的檢測

function checkparity(card)

valnum = arrch[cardtemp % 11];

if (valnum == card.substr(17, 1))

return false;

}return false;

}//15位轉18位身份證號

function changefivteentoeighteen(card)

card += arrch[cardtemp % 11];

return card;

}return card;

}//通過身份證獲得出生日期

function getbirthday() )(\d)(\d)(\d)(\d)$/;

var arr_data = idcardvalue.match(re_fifteen);

var year = arr_data[2];

var month = arr_data[3];

var day = arr_data[4];

var birthday = new date('19' + year + '/' + month + '/' + day);

mini.getbyname("birthday").setvalue(birthday);

}

if (len == '18') )(\d)(\d)(\d)(\d)([0-9]|x)$/;

var arr_data = idcardvalue.match(re_eighteen);

var year = arr_data[2];

var month = arr_data[3];

var day = arr_data[4];

var birthday = new date(year + '/' + month + '/' + day);

mini.getbyname("birthday").setvalue(birthday);}}

//通過身份證號獲取性別資訊

function get***()

if (len == '18')

if (seqno % 2 == 0)

if (seqno % 2 == 1)

mini.getbyname("***").setvalue(***);

}

python身份證號碼共18位 18位身份證校驗

數字 0 9 n位的數字 d 至少n位的數字 d m n位的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小數的正實數 0 9 0...

身份證號碼15位轉18位 C 實現

身份證最後一位神秘x的由來 身份證中的 冷知識 1999年的今天,關於實行公民身份號碼制度的決定 被發布,當年10月1日實施。為什麼有的有x?這位數是根據前17位計算出的校驗碼。如某人尾號是0 9,不會有x,如是10,則用x代替。是羅馬數字的10,這能保證身份證號不多位。轉換15位身份證號碼為18位...

18位身份證號碼檢驗JS指令碼函式修正

function checkidcard strnumber 身份證號碼最後一位可能是超過100歲老年人的x.x也可以代表是阿拉伯數字10的意思 所以排除掉最後一位數字進行數字格式測試,最後一位數字有最後一位數字的演算法 var ai if strnumber.length 18 else 呼叫數字...