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

2021-06-15 21:19:10 字數 2774 閱讀 9263

function checkidcard(strnumber)

//身份證號碼最後一位可能是超過100歲老年人的x.x也可以代表是阿拉伯數字10的意思

//所以排除掉最後一位數字進行數字格式測試,最後一位數字有最後一位數字的演算法

var ai;

if(strnumber.length==18)

else

//呼叫數字判斷函式isnumeric()

if(isnumeric(ai)==false)

var stryear,strmonth,strday,strbirthday;

stryear = parseint(ai.substr(6,4));

strmonth = parseint(ai.substr(10,2)) ;

strday = parseint(ai.substr(12,2));

//呼叫日期判斷函式isvaliddate()

if (isvaliddate(stryear,strmonth,strday)==false)

var arrverifycode = new array("1","0","x","9","8","7","6","5","4","3","2");

var wi = new array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);

var k,totalmulaiwi=0;

for (k=0; k<17;k++)

//alert("身份證號碼最後一位的識別碼是:"+totalmulaiwi);

var modvalue =totalmulaiwi % 11 ;

var strverifycode = arrverifycode[modvalue];

ai = ai+strverifycode;

//alert("身份證號碼"+strnumber+"與正確的號碼"+ai+"一致!");

if((strnumber.length==18)&&(strnumber!=ai))

return true;

}//數字判斷函式isnumeric()

function isnumeric(onum)

catch(ex)

return true;

}//有效年份判斷函式isvalidyear()

function isvalidyear(psyear)

if(isnan(psyear)==true)

if(syear == "")

if(syear.match(/[^0-9]/g)!=null)

var nyear = parseint(syear,10);

if((nyear < 0) || (9999 < nyear))

return true;

}//有效月份判斷函式isvalidmonth()

function isvalidmonth(psmonth)

if(isnan(psmonth)==true)

if(smonth == "")

if(smonth.match(/[^0-9]/g)!=null)

var nmonth = parseint(smonth,10);

if((nmonth < 0) || (12 < nmonth))

return true;

}//有效日判斷函式isvalidday()

function isvalidday(psday)

if(isnan(psday)==true)

if(sday == "")

if(sday.match(/[^0-9]/g)!=null)

var nday = parseint(psday, 10);

if((nday < 0) || (31 < nday))

return true;

}//有效日期判斷函式isvaliddate()

function isvaliddate(psyear, psmonth, psday)

var syear  = new string(psyear);

var smonth = new string(psmonth);

var sday   = new string(psday);

if(isvalidyear(syear)==false)

if(isvalidmonth(smonth)==false)

if(isvalidday(sday)==false)

var nyear  = parseint(syear,  10);

var nmonth = parseint(smonth, 10);

var nday   = parseint(sday,   10);

if(syear=="" &&  smonth=="" && sday=="")

if(syear=="" || smonth=="" || sday=="")

if(nmonth < 1 || 12 < nmonth)

if(nday < 1 || 31 < nday)

if(nmonth == 2)

}else}}

else if((nmonth == 1)  ||

(nmonth == 3)  ||

(nmonth == 5)  ||

(nmonth == 7)  ||

(nmonth == 8)  ||

(nmonth == 10) ||

(nmonth == 12))

}else

}return true;

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...

身份證號碼

每乙個人自出生後都會有乙個身份證號碼。根據我國有關部門規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為 六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。居民身份證是國家法定的證明公民個人身份的有效證件。例如 對於身份證號碼330719...

JS校驗身份證號碼

function isidcardno num d 0 9 x test num 驗證前2位,城市符合 var acity if acity parseint num.substr 0,2 null alert 城市 acity parseint num.substr 0,2 下面分別分析出生日期和...