Java判断时间,Email,手机号是否为正确格式
2013-05-30 09:54
597 查看
//
=====================判断时间是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
static
boolean
checkDate(String date,String format)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
DateFormat df = new SimpleDateFormat(format);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Date d = null;
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
try{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
d = df.parse(date);
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
}catch(Exception e){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//如果不能转换,肯定是错误格式
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String s1 = df.format(d);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
// 转换后的日期再转换回String,如果不等,逻辑错误.如format为"yyyy-MM-dd",date为
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
// "2006-02-31",转换为日期后再转换回字符串为"2006-03-03",说明格式虽然对,但日期
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
// 逻辑上不对.
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return date.equals(s1);
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断时间是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断邮件email是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
boolean
checkEmail(String email)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern = Pattern.compile("^/w+([-.]/w+)*@/w+([-]/w+)*/.(/w+([-]/w+)*/.)*[a-z]{2,3}$");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher matcher = pattern.matcher(email);
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if (matcher.matches()) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断邮件email是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断手机号phone是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
boolean
checkPhone(String phone)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern = Pattern.compile("^13/d{9}||15[8,9]/d{8}$");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher matcher = pattern.matcher(phone);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if (matcher.matches()) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断手机号phone是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
==============以下为转载其他人的.
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
其中GetArea,GetSex,GetBirthday为我新加入功能,即返回身份证的地区,返回性别,返回出生日期(前提身份证为正确的)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
该作者写得非常好,而且通俗易懂,值得好好学习
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
package
com.validate.idcard;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.text.ParseException;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.text.SimpleDateFormat;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.GregorianCalendar;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.Hashtable;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.regex.Matcher;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.regex.Pattern;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.Calendar;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
class
IDCard
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 1、号码的结构
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
2、地址码(前六位数)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
3、出生日期码(第七位至十四位)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
4、顺序码(第十五位至十七位)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
5、校验码(第十八位数)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
(1)十七位数字本体码加权求和公式
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai:表示第i位置上的身份证号码数字值
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Wi:表示第i位置上的加权因子
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
(2)计算模
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Y = mod(S, 11)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
(3)通过模得到对应的校验码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Y: 0 1 2 3 4 5 6 7 8 9 10
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
校验码: 1 0 X 9 8 7 6 5 4 3 2
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
所以我们就可以大致写一个函数来校验是否正确了。
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
* */
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:身份证的有效验证
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param IDStr 身份证号
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return 有效:true 无效:false
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @throws ParseException
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
public boolean IDCardValidate(String IDStr) throws ParseException
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String errorInfo = "";//记录错误信息
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
String[] ValCodeArr = {"1","0","x","9","8","7","6","5","4","3","2"};
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
String[] Wi = {"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"};
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//String[] Checker = {"1","9","8","7","6","5","4","3","2","1","1"};
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String Ai="";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 号码的长度 15位或18位 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(IDStr.length()!=15 && IDStr.length()!=18)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="号码长度应该为15位或18位。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=======================(end)========================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 数字 除最后以为都为数字 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(IDStr.length()==18)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai=IDStr.substring(0,17);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else if(IDStr.length()==15)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai=IDStr.substring(0,6)+"19"+IDStr.substring(6,15);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(isNumeric(Ai)==false)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=======================(end)========================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 出生年月是否有效 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strYear =Ai.substring(6 ,10);//年份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strMonth=Ai.substring(10,12);//月份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strDay =Ai.substring(12,14);//月份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(this.isDate(strYear+"-"+strMonth+"-"+strDay)==false)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="生日无效。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
GregorianCalendar gc=new GregorianCalendar();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if((gc.get(Calendar.YEAR)-Integer.parseInt(strYear))>150 || (gc.getTime().getTime()-s.parse(strYear+"-"+strMonth+"-"+strDay).getTime())<0)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="生日不在有效范围。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Integer.parseInt(strMonth)>12 || Integer.parseInt(strMonth)==0)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="月份无效";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Integer.parseInt(strDay)>31 || Integer.parseInt(strDay)==0)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="日期无效";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=====================(end)=====================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 地区码时候有效 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Hashtable h=GetAreaCode();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(h.get(Ai.substring(0,2))==null)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="地区编码错误。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//==============================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 判断最后一位的值 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
int TotalmulAiWi=0;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
for(int i=0 ; i<17 ; i++)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
TotalmulAiWi = TotalmulAiWi + Integer.parseInt(String.valueOf(Ai.charAt(i))) * Integer.parseInt(Wi[i]);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
int modValue=TotalmulAiWi % 11;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strVerifyCode=ValCodeArr[modValue];
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai=Ai+strVerifyCode;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(IDStr.length()==18)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Ai.equals(IDStr)==false)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="身份证无效,最后一位字母错误";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println("所在地区:"+h.get(Ai.substring(0,2).toString()));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println("新身份证号:"+Ai);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=====================(end)=====================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println("所在地区:"+h.get(Ai.substring(0,2).toString()));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:设置地区编码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return Hashtable 对象
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
private Hashtable GetAreaCode()
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Hashtable hashtable=new Hashtable();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("11","北京");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("12","天津");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("13","河北");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("14","山西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("15","内蒙古");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("21","辽宁");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("22","吉林");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("23","黑龙江");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("31","上海");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("32","江苏");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("33","浙江");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("34","安徽");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("35","福建");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("36","江西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("37","山东");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("41","河南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("42","湖北");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("43","湖南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("44","广东");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("45","广西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("46","海南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("50","重庆");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("51","四川");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("52","贵州");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("53","云南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("54","西藏");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("61","陕西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("62","甘肃");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("63","青海");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("64","宁夏");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("65","新疆");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("71","台湾");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("81","香港");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("82","澳门");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("91","国外");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return hashtable;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:判断字符串是否为数字
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param str
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
private boolean isNumeric(String str)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern=Pattern.compile("[0-9]*");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher isNum=pattern.matcher(str);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(isNum.matches())
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*判断一个字符时候为数字
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Character.isDigit(str.charAt(0)))
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}*/
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:判断字符串是否为日期格式
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param str
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
public boolean isDate(String strDate)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern = Pattern.compile("^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher m=pattern.matcher(strDate);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(m.matches())
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*=======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*功能:在判定已经是正确的身份证号码之后,查找出身份证所在地区
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@param idCard 身份证号码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@return 所在地区
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public String GetArea(String idCard){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Hashtable<String,String> ht = GetAreaCode();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String area = ht.get(idCard.substring(0,2));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return area;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*=======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*功能:在判定已经是正确的身份证号码之后,查找出此人性别
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@param idCard 身份证号码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@return 男或者女
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public String GetSex(String idCard){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String sex = "";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(idCard.length()==15)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
sex = idCard.substring(idCard.length()-3,idCard.length());
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(idCard.length()==18)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
sex = idCard.substring(idCard.length()-4,idCard.length()-1);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(sex);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
int sexNum = Integer.parseInt(sex)%2;
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if(sexNum == 0){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return "女";
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return "男";
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*=======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*功能:在判定已经是正确的身份证号码之后,查找出此人出生日期
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@param idCard 身份证号码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@return 出生日期 XXXX MM-DD
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public String GetBirthday(String idCard){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String Ain = "";
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if(idCard.length()==18) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ain=idCard.substring(0,17);
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
} else if(idCard.length()==15) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ain=idCard.substring(0,6)+"19"+idCard.substring(6,15);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 出生年月是否有效 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strYear =Ain.substring(6 ,10);//年份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strMonth=Ain.substring(10,12);//月份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strDay =Ain.substring(12,14);//日期
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return strYear+"-"+strMonth+"-"+strDay;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param args
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @throws ParseException
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public static void main(String[] args) throws ParseException {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//String IDCardNum="210102820826411";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//String IDCardNum="210102198208264114";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String IDCardNum="210103970228123";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
IDCard cc=new IDCard();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(cc.IDCardValidate(IDCardNum));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//System.out.println(cc.isDate("1996-02-29"));
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
=====================判断时间是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
static
boolean
checkDate(String date,String format)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
DateFormat df = new SimpleDateFormat(format);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Date d = null;
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
try{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
d = df.parse(date);
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
}catch(Exception e){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//如果不能转换,肯定是错误格式
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String s1 = df.format(d);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
// 转换后的日期再转换回String,如果不等,逻辑错误.如format为"yyyy-MM-dd",date为
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
// "2006-02-31",转换为日期后再转换回字符串为"2006-03-03",说明格式虽然对,但日期
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
// 逻辑上不对.
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return date.equals(s1);
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断时间是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断邮件email是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
boolean
checkEmail(String email)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern = Pattern.compile("^/w+([-.]/w+)*@/w+([-]/w+)*/.(/w+([-]/w+)*/.)*[a-z]{2,3}$");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher matcher = pattern.matcher(email);
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if (matcher.matches()) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断邮件email是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断手机号phone是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
boolean
checkPhone(String phone)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern = Pattern.compile("^13/d{9}||15[8,9]/d{8}$");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher matcher = pattern.matcher(phone);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if (matcher.matches()) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
=====================判断手机号phone是否正确格式
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
==============以下为转载其他人的.
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
其中GetArea,GetSex,GetBirthday为我新加入功能,即返回身份证的地区,返回性别,返回出生日期(前提身份证为正确的)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
//
该作者写得非常好,而且通俗易懂,值得好好学习
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
package
com.validate.idcard;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.text.ParseException;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.text.SimpleDateFormat;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.GregorianCalendar;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.Hashtable;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.regex.Matcher;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.regex.Pattern;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
import
java.util.Calendar;
![](http://static.oschina.net/uploads/img/201305/30095416_HJiy.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_kWCh.gif)
public
class
IDCard
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 1、号码的结构
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
2、地址码(前六位数)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
3、出生日期码(第七位至十四位)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
4、顺序码(第十五位至十七位)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
5、校验码(第十八位数)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
(1)十七位数字本体码加权求和公式
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai:表示第i位置上的身份证号码数字值
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Wi:表示第i位置上的加权因子
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
(2)计算模
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Y = mod(S, 11)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
(3)通过模得到对应的校验码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Y: 0 1 2 3 4 5 6 7 8 9 10
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
校验码: 1 0 X 9 8 7 6 5 4 3 2
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
所以我们就可以大致写一个函数来校验是否正确了。
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
* */
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:身份证的有效验证
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param IDStr 身份证号
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return 有效:true 无效:false
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @throws ParseException
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
public boolean IDCardValidate(String IDStr) throws ParseException
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String errorInfo = "";//记录错误信息
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
String[] ValCodeArr = {"1","0","x","9","8","7","6","5","4","3","2"};
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
String[] Wi = {"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"};
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//String[] Checker = {"1","9","8","7","6","5","4","3","2","1","1"};
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String Ai="";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 号码的长度 15位或18位 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(IDStr.length()!=15 && IDStr.length()!=18)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="号码长度应该为15位或18位。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=======================(end)========================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 数字 除最后以为都为数字 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(IDStr.length()==18)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai=IDStr.substring(0,17);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else if(IDStr.length()==15)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai=IDStr.substring(0,6)+"19"+IDStr.substring(6,15);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(isNumeric(Ai)==false)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=======================(end)========================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 出生年月是否有效 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strYear =Ai.substring(6 ,10);//年份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strMonth=Ai.substring(10,12);//月份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strDay =Ai.substring(12,14);//月份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(this.isDate(strYear+"-"+strMonth+"-"+strDay)==false)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="生日无效。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
GregorianCalendar gc=new GregorianCalendar();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if((gc.get(Calendar.YEAR)-Integer.parseInt(strYear))>150 || (gc.getTime().getTime()-s.parse(strYear+"-"+strMonth+"-"+strDay).getTime())<0)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="生日不在有效范围。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Integer.parseInt(strMonth)>12 || Integer.parseInt(strMonth)==0)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="月份无效";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Integer.parseInt(strDay)>31 || Integer.parseInt(strDay)==0)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="日期无效";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=====================(end)=====================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 地区码时候有效 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Hashtable h=GetAreaCode();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(h.get(Ai.substring(0,2))==null)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="地区编码错误。";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//==============================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 判断最后一位的值 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
int TotalmulAiWi=0;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
for(int i=0 ; i<17 ; i++)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
TotalmulAiWi = TotalmulAiWi + Integer.parseInt(String.valueOf(Ai.charAt(i))) * Integer.parseInt(Wi[i]);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
int modValue=TotalmulAiWi % 11;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strVerifyCode=ValCodeArr[modValue];
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ai=Ai+strVerifyCode;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(IDStr.length()==18)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Ai.equals(IDStr)==false)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
errorInfo="身份证无效,最后一位字母错误";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(errorInfo);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println("所在地区:"+h.get(Ai.substring(0,2).toString()));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println("新身份证号:"+Ai);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//=====================(end)=====================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println("所在地区:"+h.get(Ai.substring(0,2).toString()));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:设置地区编码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return Hashtable 对象
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
private Hashtable GetAreaCode()
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Hashtable hashtable=new Hashtable();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("11","北京");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("12","天津");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("13","河北");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("14","山西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("15","内蒙古");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("21","辽宁");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("22","吉林");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("23","黑龙江");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("31","上海");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("32","江苏");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("33","浙江");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("34","安徽");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("35","福建");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("36","江西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("37","山东");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("41","河南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("42","湖北");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("43","湖南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("44","广东");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("45","广西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("46","海南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("50","重庆");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("51","四川");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("52","贵州");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("53","云南");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("54","西藏");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("61","陕西");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("62","甘肃");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("63","青海");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("64","宁夏");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("65","新疆");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("71","台湾");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("81","香港");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("82","澳门");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
hashtable.put("91","国外");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return hashtable;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:判断字符串是否为数字
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param str
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
private boolean isNumeric(String str)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern=Pattern.compile("[0-9]*");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher isNum=pattern.matcher(str);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(isNum.matches())
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*判断一个字符时候为数字
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(Character.isDigit(str.charAt(0)))
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}*/
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* 功能:判断字符串是否为日期格式
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param str
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @return
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
public boolean isDate(String strDate)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Pattern pattern = Pattern.compile("^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$");
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Matcher m=pattern.matcher(strDate);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(m.matches())
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return true;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
else
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
{
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return false;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*=======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*功能:在判定已经是正确的身份证号码之后,查找出身份证所在地区
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@param idCard 身份证号码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@return 所在地区
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public String GetArea(String idCard){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Hashtable<String,String> ht = GetAreaCode();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String area = ht.get(idCard.substring(0,2));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return area;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*=======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*功能:在判定已经是正确的身份证号码之后,查找出此人性别
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@param idCard 身份证号码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@return 男或者女
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public String GetSex(String idCard){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String sex = "";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(idCard.length()==15)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
sex = idCard.substring(idCard.length()-3,idCard.length());
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
if(idCard.length()==18)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
sex = idCard.substring(idCard.length()-4,idCard.length()-1);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(sex);
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
int sexNum = Integer.parseInt(sex)%2;
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if(sexNum == 0){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return "女";
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return "男";
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/*=======================================================================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*功能:在判定已经是正确的身份证号码之后,查找出此人出生日期
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@param idCard 身份证号码
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
*@return 出生日期 XXXX MM-DD
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public String GetBirthday(String idCard){
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String Ain = "";
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
if(idCard.length()==18) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ain=idCard.substring(0,17);
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
} else if(idCard.length()==15) {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
Ain=idCard.substring(0,6)+"19"+idCard.substring(6,15);
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//================ 出生年月是否有效 ================
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strYear =Ain.substring(6 ,10);//年份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strMonth=Ain.substring(10,12);//月份
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String strDay =Ain.substring(12,14);//日期
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
return strYear+"-"+strMonth+"-"+strDay;
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
/**
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @param args
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
* @throws ParseException
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
*/
![](http://static.oschina.net/uploads/img/201305/30095416_fEh1.gif)
public static void main(String[] args) throws ParseException {
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//String IDCardNum="210102820826411";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//String IDCardNum="210102198208264114";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
String IDCardNum="210103970228123";
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
IDCard cc=new IDCard();
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
System.out.println(cc.IDCardValidate(IDCardNum));
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
//System.out.println(cc.isDate("1996-02-29"));
![](http://static.oschina.net/uploads/img/201305/30095416_P9Su.gif)
}
![](http://static.oschina.net/uploads/img/201305/30095416_rYq5.gif)
![](http://static.oschina.net/uploads/img/201305/30095417_KUGb.gif)
}
相关文章推荐
- Java判断时间,Email,手机号是否为正确格式
- Java判断时间,Email,手机号,身份证等是否为正确格式
- Java判断时间,Email,手机号,身份证等是否为正确格式
- Java判断时间,Email,手机号是否为正确格式
- java 小方法 判断字符串是否为时间格式,email格式,手机号格式
- 判断手机号格式是否正确(写于2015年,过期时间未知)
- 判断库中为字符串格式的时间是否为最近三个月(Java)
- 判断手机号,邮箱,密码等格式是否正确
- java中判断传入的字符串是否是时间格式
- android 判断手机号是否格式正确
- java 判断日期格式是否正确,日期是否规范
- Java中用正则表达式判断日期格式是否正确
- JAVA中判断是否是正确的日期格式(yyyy-mm-dd)
- 判断时间格式是否正确
- JAVA 判断是否是正确的日期格式(yyyy-mm-dd)
- 获取倒计时距离某一时间点的时间,判断身份证,电话号码格式是否正确的简单封装
- java验证手机号格式是否正确
- Java日期转换SimpleDateFormat格式大全 和 判断是否为合法的日期时间字符串?
- 判断是否是正确的EMAIL格式
- Java用正则表达式判断输入的电话号码格式是否正确