/**
* 驗證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 天數...