15位身份證號的校驗

2021-08-28 11:08:38 字數 1187 閱讀 1389

/** 

* 驗證15位身份證的合法性,該方法驗證不準確,最好是將15轉為18位後再判斷,該類中已提供。

* * @param idcard

* @return

*/

public boolean isvalidate15idcard(string idcard)

// 是否全都為數字

if (isdigital(idcard))

} if (!flag)

// 該身份證生出日期在當前日期之後時為假

date birthdate = null;

try catch (parseexception e)

if (birthdate == null || new date().before(birthdate))

// 判斷是否為合法的年份

gregoriancalendar curday = new gregoriancalendar();

int curyear = curday.get(calendar.year);

int year2bit = integer.parseint(string.valueof(curyear)

.substring(2));

// 判斷該年份的兩位表示法,小於50的和大於當前年份的,為假

if ((year < 50 && year > year2bit))

// 判斷是否為合法的月份

if (month < 1 || month > 12)

// 判斷是否為合法的日期

boolean mflag = false;

curday.settime(birthdate); // 將該身份證的出生日期賦於物件curday

switch (month) else

break;

case 4:

case 6:

case 9:

case 11:

mflag = (day >= 1 && day <= 30);

break;

} if (!mflag)

} else

return true;

}

PHP校驗15位和18位身份證號

看新公司框架原始碼的時候,發現了這個功能,於是搜尋一番並封裝了一下身份證號校驗的類。目前大家的身份證號大多是18位的,當然,也不排除有些老人的身份證號是15位的。如果強制要求是18位的話,會比較好,因為15位的身份證號沒有校驗碼,可以說,只要了解大概結構,隨手都可以造出一系列身份證號碼來。當然,如果...

js校驗身份證號

校驗身份證號是否正確 var vcity function identitycodevalid code 校驗長度,型別 if iscardno code false 檢查省份 if checkprovince code false 校驗生日 if checkbirthday code false ...

身份證號正則校驗

正則匹配身份證號 分為18位和15位 yyyy mm dd 375 0 十八位 yy mm dd 75 0 十五位 地區 1 9 d 地區 嚴格 1 6 1 9 50 d 補充重慶地區50 年的前兩位 18 19 23 d 1800 2399 年的後兩位 d 月份 0 1 9 10 11 12 天數...