/**
* 身份證15位編碼規(guī)則:dddddd yymmdd xx p
* dddddd:地區(qū)碼
* yymmdd: 出生年月日
* xx: 順序類編碼矢渊,無法確定
* p: 性別猿涨,奇數(shù)為男救斑,偶數(shù)為女
* <p />
* 身份證18位編碼規(guī)則:dddddd yyyymmdd xxx y
* dddddd:地區(qū)碼
* yyyymmdd: 出生年月日
* xxx:順序類編碼徊件,無法確定,奇數(shù)為男灸蟆,偶數(shù)為女
* y: 校驗(yàn)碼炎疆,該位數(shù)值可通過前17位計(jì)算獲得
* <p />
* 18位號(hào)碼加權(quán)因子為(從右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ]
* 驗(yàn)證位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
* 校驗(yàn)位計(jì)算公式:Y_P = mod( ∑(Ai×Wi),11 )
* i為身份證號(hào)碼從右往左數(shù)的 2...18 位; Y_P為腳丫校驗(yàn)碼所在校驗(yàn)碼數(shù)組位置
*
*/
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加權(quán)因子
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份證驗(yàn)證位值.10代表X
function IdCardValidate(idCard) {
idCard = trim(idCard);
if (idCard.length == 15) {
return isValidityBrithBy15IdCard(idCard);
} else if (idCard.length == 18) {
var a_idCard = idCard.split("");// 得到身份證數(shù)組
if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){
return true;
}else {
return false;
}
} else {
return false;
}
}
/**
* 判斷身份證號(hào)碼為18位時(shí)最后的驗(yàn)證位是否正確
* @param a_idCard 身份證號(hào)碼數(shù)組
* @return
*/
function isTrueValidateCodeBy18IdCard(a_idCard) {
var sum = 0; // 聲明加權(quán)求和變量
if (a_idCard[17].toLowerCase() == 'x') {
a_idCard[17] = 10;// 將最后位為x的驗(yàn)證碼替換為10方便后續(xù)操作
}
for ( var i = 0; i < 17; i++) {
sum += Wi[i] * a_idCard[i];// 加權(quán)求和
}
valCodePosition = sum % 11;// 得到驗(yàn)證碼所位置
if (a_idCard[17] == ValideCode[valCodePosition]) {
return true;
} else {
return false;
}
}
/**
* 通過身份證判斷是男是女
* @param idCard 15/18位身份證號(hào)碼
* @return 'female'-女泌射、'male'-男
*/
function maleOrFemalByIdCard(idCard){
idCard = trim(idCard.replace(/ /g, ""));// 對(duì)身份證號(hào)碼做處理。包括字符間有空格鞠苟。
if(idCard.length==15){
if(idCard.substring(14,15)%2==0){
return 'female';
}else{
return 'male';
}
}else if(idCard.length ==18){
if(idCard.substring(14,17)%2==0){
return 'female';
}else{
return 'male';
}
}else{
return null;
}
// 可對(duì)傳入字符直接當(dāng)作數(shù)組來處理
// if(idCard.length==15){
// alert(idCard[13]);
// if(idCard[13]%2==0){
// return 'female';
// }else{
// return 'male';
// }
// }else if(idCard.length==18){
// alert(idCard[16]);
// if(idCard[16]%2==0){
// return 'female';
// }else{
// return 'male';
// }
// }else{
// return null;
// }
}
/**
* 驗(yàn)證18位數(shù)身份證號(hào)碼中的生日是否是有效生日
* @param idCard 18位書身份證字符串
* @return
*/
function isValidityBrithBy18IdCard(idCard18){
var year = idCard18.substring(6,10);
var month = idCard18.substring(10,12);
var day = idCard18.substring(12,14);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 這里用getFullYear()獲取年份乞榨,避免千年蟲問題
if(temp_date.getFullYear()!=parseFloat(year)
||temp_date.getMonth()!=parseFloat(month)-1
||temp_date.getDate()!=parseFloat(day)){
return false;
}else{
return true;
}
}
/**
* 驗(yàn)證15位數(shù)身份證號(hào)碼中的生日是否是有效生日
* @param idCard15 15位書身份證字符串
* @return
*/
function isValidityBrithBy15IdCard(idCard15){
var year = idCard15.substring(6,8);
var month = idCard15.substring(8,10);
var day = idCard15.substring(10,12);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 對(duì)于老身份證中的你年齡則不需考慮千年蟲問題而使用getYear()方法
if(temp_date.getYear()!=parseFloat(year)
||temp_date.getMonth()!=parseFloat(month)-1
||temp_date.getDate()!=parseFloat(day)){
return false;
}else{
return true;
}
}
//去掉字符串頭尾空格
function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
}
javascript 驗(yàn)證身份證號(hào)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門愤诱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捐友,你說我怎么就攤上這事淫半。” “怎么了匣砖?”我有些...
- 文/不壞的土叔 我叫張陵科吭,是天一觀的道長。 經(jīng)常有香客問我猴鲫,道長对人,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任拂共,我火速辦了婚禮牺弄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宜狐。我一直安慰自己势告,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布抚恒。 她就那樣靜靜地躺著咱台,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柑爸。 梳的紋絲不亂的頭發(fā)上吵护,一...
- 文/蒼蘭香墨 我猛地睜開眼厘熟,長吁一口氣:“原來是場噩夢啊……” “哼屯蹦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绳姨,我...
- 序言:老撾萬榮一對(duì)情侶失蹤登澜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后飘庄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脑蠕,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谴仙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迂求。...
- 正文 年R本政府宣布凌盯,位于F島的核電站,受9級(jí)特大地震影響涩盾,放射性物質(zhì)發(fā)生泄漏十气。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一春霍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叶眉,春花似錦址儒、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饱溢,卻和暖如春喧伞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绩郎。 一陣腳步聲響...
- 正文 我出身青樓溉仑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親状植。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浊竟,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 整理了之前用到的一些驗(yàn)證胧后,發(fā)出來,希望對(duì)各位有用抱环。 ValidateClass.h文件 ValidateClass...
- http://blog.jdk5.com/zh/javascript-chinese-personal-id-ca...
- //身份證號(hào) +(BOOL)CheckIsIdentityCard:(NSString*)identityCard...
- 現(xiàn)象——這個(gè)方法真的有效嗎因宇? 這個(gè)思維模式七婴,嚴(yán)格地說起來,是屬于“系統(tǒng)1”察滑,基于模糊打厘,大概,被簡化的贺辰。我曾經(jīng)對(duì)小馬...