- 浏览: 345239 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
AspirantHui:
楼主说的很有道理。只是你第二点里面写的“行业经验”具体是指什么 ...
一起来讨论程序员的跳槽与选择 -
di1984HIT:
写的不错啊、
linux下的mysql的导入导出命令 -
王迎宾:
① 弄啥来!
MyEclipse配置WebService六步曲(xfire) -
xiaoji123pt:
不错。。
tomcat下catalina.out日志文件分割 -
Unmi:
可是原来那个 catalina.out 文件还是一直保留着老的 ...
tomcat下使用cronolog对catalina.out日志文件分割
//=====================判断时间是否正确格式
public static boolean checkDate(String date,String format) {
DateFormat df = new SimpleDateFormat(format);
Date d = null;
try{
d = df.parse(date);
}catch(Exception e){
//如果不能转换,肯定是错误格式
return false;
}
String s1 = df.format(d);
// 转换后的日期再转换回String,如果不等,逻辑错误.如format为"yyyy-MM-dd",date为
// "2006-02-31",转换为日期后再转换回字符串为"2006-03-03",说明格式虽然对,但日期
// 逻辑上不对.
return date.equals(s1);
}
//=====================判断时间是否正确格式
//=====================判断邮件email是否正确格式
public boolean checkEmail(String email){
Pattern pattern = Pattern.compile("^\w+([-.]\w+)*@\w+([-]\w+)*\.(\w+([-]\w+)*\.)*[a-z]{2,3}$");
Matcher matcher = pattern.matcher(email);
if (matcher.matches()) {
return true;
}
return false;
}
//=====================判断邮件email是否正确格式
//=====================判断手机号phone是否正确格式
public boolean checkPhone(String phone){
Pattern pattern = Pattern.compile("^13\d{9}||15[8,9]\d{8}$");
Matcher matcher = pattern.matcher(phone);
if (matcher.matches()) {
return true;
}
return false;
}
//=====================判断手机号phone是否正确格式
//==============以下为转载其他人的.
//其中GetArea,GetSex,GetBirthday为我新加入功能,即返回身份证的地区,返回性别,返回出生日期(前提身份证为正确的)
//该作者写得非常好,而且通俗易懂,值得好好学习
package com.validate.idcard;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.Hashtable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Calendar;
public class IDCard {
/**
* 1、号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2、地址码(前六位数)
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码(第七位至十四位)
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码(第十五位至十七位)
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5、校验码(第十八位数)
(1)十七位数字本体码加权求和公式
S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
Ai:表示第i位置上的身份证号码数字值
Wi:表示第i位置上的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
Y = mod(S, 11)
(3)通过模得到对应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
所以我们就可以大致写一个函数来校验是否正确了。
* */
/**======================================================================
* 功能:身份证的有效验证
* @param IDStr 身份证号
* @return 有效:true 无效:false
* @throws ParseException
*/
public boolean IDCardValidate(String IDStr) throws ParseException
{
String errorInfo = "";//记录错误信息
String[] ValCodeArr = {"1","0","x","9","8","7","6","5","4","3","2"};
String[] Wi = {"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"};
//String[] Checker = {"1","9","8","7","6","5","4","3","2","1","1"};
String Ai="";
//================ 号码的长度 15位或18位 ================
if(IDStr.length()!=15 && IDStr.length()!=18)
{
errorInfo="号码长度应该为15位或18位。";
System.out.println(errorInfo);
return false;
}
//=======================(end)========================
//================ 数字 除最后以为都为数字 ================
if(IDStr.length()==18)
{
Ai=IDStr.substring(0,17);
}
else if(IDStr.length()==15)
{
Ai=IDStr.substring(0,6)+"19"+IDStr.substring(6,15);
}
if(isNumeric(Ai)==false)
{
errorInfo="15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
System.out.println(errorInfo);
return false;
}
//=======================(end)========================
//================ 出生年月是否有效 ================
String strYear =Ai.substring(6 ,10);//年份
String strMonth=Ai.substring(10,12);//月份
String strDay =Ai.substring(12,14);//月份
if(this.isDate(strYear+"-"+strMonth+"-"+strDay)==false)
{
errorInfo="生日无效。";
System.out.println(errorInfo);
return false;
}
GregorianCalendar gc=new GregorianCalendar();
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
if((gc.get(Calendar.YEAR)-Integer.parseInt(strYear))>150 || (gc.getTime().getTime()-s.parse(strYear+"-"+strMonth+"-"+strDay).getTime())<0)
{
errorInfo="生日不在有效范围。";
System.out.println(errorInfo);
return false;
}
if(Integer.parseInt(strMonth)>12 || Integer.parseInt(strMonth)==0)
{
errorInfo="月份无效";
System.out.println(errorInfo);
return false;
}
if(Integer.parseInt(strDay)>31 || Integer.parseInt(strDay)==0)
{
errorInfo="日期无效";
System.out.println(errorInfo);
return false;
}
//=====================(end)=====================
//================ 地区码时候有效 ================
Hashtable h=GetAreaCode();
if(h.get(Ai.substring(0,2))==null)
{
errorInfo="地区编码错误。";
System.out.println(errorInfo);
return false;
}
//==============================================
//================ 判断最后一位的值 ================
int TotalmulAiWi=0;
for(int i=0 ; i<17 ; i++)
{
TotalmulAiWi = TotalmulAiWi + Integer.parseInt(String.valueOf(Ai.charAt(i))) * Integer.parseInt(Wi[i]);
}
int modValue=TotalmulAiWi % 11;
String strVerifyCode=ValCodeArr[modValue];
Ai=Ai+strVerifyCode;
if(IDStr.length()==18)
{
if(Ai.equals(IDStr)==false)
{
errorInfo="身份证无效,最后一位字母错误";
System.out.println(errorInfo);
return false;
}
}
else
{
System.out.println("所在地区:"+h.get(Ai.substring(0,2).toString()));
System.out.println("新身份证号:"+Ai);
return true;
}
//=====================(end)=====================
System.out.println("所在地区:"+h.get(Ai.substring(0,2).toString()));
return true;
}
/**======================================================================
* 功能:设置地区编码
* @return Hashtable 对象
*/
private Hashtable GetAreaCode()
{
Hashtable hashtable=new Hashtable();
hashtable.put("11","北京");
hashtable.put("12","天津");
hashtable.put("13","河北");
hashtable.put("14","山西");
hashtable.put("15","内蒙古");
hashtable.put("21","color: #000000
发表评论
-
mysql8降级使用sql
2020-03-25 13:30 315使用navicate12运行sql文件出错 报错: ... -
在freemarker中获取当前日期及时间比较
2015-09-15 18:39 8579在freemarker中获取当前日期:${.now}获取当前日 ... -
Spring MVC拦截器+注解方式实现防止表单重复提交
2015-07-02 09:03 849原理:在新建页面中Session保存token随机码,当保存 ... -
获取复利总收入
2015-03-08 17:51 787public static void main ... -
使用Spring进行统一日志管理 + 统一异常管理
2015-03-01 23:10 5038统一日志和异常管理配置好后,SSH项目中,代码以往散落的lo ... -
spring3.0异常处理进阶
2015-03-01 23:03 1447spring3.0开发不可避免要遇到异常处理,如果只有jsp ... -
jdk-6u26-linux-x64.bin 安装
2014-05-10 09:14 21591.上传安装文件(jdk-6u26-linux-x64.bi ... -
上一页 下一页SQL语句
2013-11-21 11:46 997上一页 下一页SQL语句 string pr ... -
JDK安装配置 1.7
2013-09-06 07:43 1121JDK安装配置 1、 下载jdk,本例使用jdk-7u5 ... -
java截取中英文混合字符串 等宽显示
2013-09-04 20:44 1718Java代码 import java. ... -
Spring自带html标签转义与反转义
2012-10-10 13:52 5308String ss = "<br>< ... -
ajax与java配合转码方式
2012-10-09 11:47 918(1) 客户端对url进行两次转码:(str可能是中文) J ... -
url的不同获取方式
2012-08-05 16:57 949假定你的web application 名 ... -
推荐两个非常好用的测试工具jmeter和badboy
2011-12-23 10:56 1630loadruner就不用说了,测 ... -
做网站用UTF-8还是GB2312?
2011-12-13 12:15 860经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国 ... -
JFreeChart饼状图显示百分比
2011-11-29 15:28 1987jfreechart-1.0.1中设置饼图默认的Label是传 ... -
简单的java加密解密类
2011-11-08 15:19 1861import java.security.Key; impo ... -
利用JDBC获得INSERT插入后生成的主键ID
2011-11-05 17:27 1766ps = conn.prepareStatement(&quo ... -
tomcat下catalina.out日志文件分割
2011-10-31 12:34 1314使用log4j成功使catalina.out文件实现分割。 在 ... -
一步步构建大型网站架构
2011-10-08 16:17 790之前我简单向大家介绍 ...
相关推荐
判断手机号码是否正确,使用java代码编写,代码可举一返百
java正则校验,手机号,邮箱,日期格式,时间格式,数字金额两位小数 3.58是否为金额:true 3.582是否为金额:false 1284789@qq.com是否为email:true 1284789qq.com是否为email:false 1823753112是否为手机号:...
java判断一段话中是否有电话号码,并将其进行隐藏
java 判断两个时间段是否重叠的案例.docx
java判断电话号码所属运营商 通过传入的移动电话号码判断所属运营商(限中国的移动运营商)
java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式
经常在网上搜东西都搜不到,更有人上传点没用了,现在我解决了就把解决方法上传上吧.
// 判断储存格的格式 if (cell != null) { // 取得单元格的值 mobileStr = cell.getStringCellValue(); // 对手机号码进行验证身份正确 if(isMobileNO(mobileStr)) { // 保存正确的手机号码 mobileSet....
JAVA验证身份证号码校验码是否正确
填入手机号码,获取手机号码归属地
包括全面的常见的各种格式在验证,希望大家可以交流学习
springboot框架、前端框架layui、mysql数据库,主要用于检测导入的手机号是否开通可用。可用IntelliJ IDEA工具直接打开
主要介绍了java使用正则表达式判断手机号的方法,分析了手机号码段的原理及java使用正则表达式针对手机号的匹配操作实现技巧,需要的朋友可以参考下
主要为大家详细介绍了Java解密微信小程序手机号的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
输入手机号码,严重输入是否为手机号码,如果不是,则会弹出错误提示 注意:只用于验证中国国内手机号码
最新手机号码、电话号码正则表达式
手机号各网段号码校验,包括大陆和香港手机号区分。 大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数 * 此方法中前三位格式有: * 13+任意数 * 15+除4的任意数 * 18+除1和4的任意数 * 17+除9的...
它的类库很小,只有500K左右,利用该类库判定文本文件的代码如下(由于cpdetector的算法使用概率统计,所以结果并不是100%准确的,但是是迄今为止我见过
java 验证手机号码 身份证 email url 以及其他常用的正则表达式的验证方法。