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 呼叫數字...