java邮箱校验,手机号校验,格式化日期等等

Wesley13
• 阅读 648
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import 这个是传入数据的封装jar包,可以不用看,具体看自己需求context.Recordset;

public class ApplyUtil {
    public final static String Number_Chinese  =  "1"; //2012年2月16日 
    public final static String Number_Point  =  "2";//2010.2.16
    /**
     * 判断数据是否为空
     * @param str 字符串
     * @return
     */
    public static boolean isEmpty(String str){
        if(null == str || str.trim().equals("")){
            return true;
        }
        return false;
    }
    
    /**
     * 判断记录集是否为空
     * @param rs
     * @return
     */
    public static boolean isRecordsetNull(Recordset rs){
        if(null == rs || rs.size() == 0){
            return true;
        }
        return false;
    }
    
    /**
      *  为当前日期增加month月
      *  @time  2012-6-6 上午10:57:32
      *  @param month
      *  @return
      */
    public static String addMonth(int month){
        Calendar   cal   =   Calendar.getInstance(); 
        SimpleDateFormat   sFmt   =   new   SimpleDateFormat("yyyy年MM月dd日"); 
        if   (month   !=   0)   { 
            cal.add(Calendar.MONTH,   month); 
        } 
        return   sFmt.format(cal.getTime());
    }
    
    
    /**
     * 根据要求将时间转化成字符串
     * @param date 8位字符
     * @param style 样式
     * @return
     */
    public static String parseDate2String(String date,String style){
        String formatDate = "";
        int len = 0;
        if(!ApplyUtil.isEmpty(date)){
            len = date.trim().length();
            if(len == 8){
                if(Number_Chinese.equals(style)){
                    formatDate = getNumberChineseDate(date);
                }
                if(Number_Point.equals(style)){
                    formatDate = getNumberPointDate(date);
                }
            }else{
                formatDate = date;
            }
        }
        return formatDate;
    }
    
    /**
     * 格式化日期为:2012年2月16日 
     * @param date
     * @return
     */
    private static String getNumberChineseDate(String date){
        String year = date.substring(0, 4);
        String month = leaveZero(date.substring(4, 6));
        String day = leaveZero(date.substring(6,8));
        return year + "年" + month + "月" + day + "日";
    }
    
    /**
     * 格式化日期为:2012年2月16日 
     * @param date
     * @return
     */
    private static String getNumberPointDate(String date){
        String year = date.substring(0, 4);
        String month = leaveZero(date.substring(4, 6));
        String day = leaveZero(date.substring(6,8));
        return year + "." + month + "." + day;
    }
    
    /**
     * 去掉前面含有的0
     * @param str
     * @return
     */
    private static String leaveZero(String str){
        if(str.length() == 2 && str.charAt(0) == '0'){
            return str.substring(1,2);
        }
        return str;
    }
    
    /**
     * 获得文件的类型
    *  @author ly
    *  @date  2012-4-9
     * @param file 文件的全路径
     * @return
     */
    public static String getSuffix(String file) {
        if(isEmpty(file) || file.indexOf(".") == -1 || file.indexOf(".") == file.length() - 1)
            return "";
        System.out.println(file.length());
        System.out.println(file.lastIndexOf("."));
        String suffix=file.substring(file.lastIndexOf("."),file.length());
        return suffix.toLowerCase();
    }
    
    
    /**
     * 邮箱校验
     * @param email
     * @return true:邮箱格式正确; false:邮箱格式错误
     */
    public static boolean isEmail(String email){     
        //String str = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";//带横杠的出错
        //String str = "^\\s*\\w+(?:\\.{0,1}[\\w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*\\.[a-zA-Z]+\\s*$";//带下划线出错
//        Pattern p = Pattern.compile(str);
//        Matcher m = p.matcher(email.trim());     
//        return m.matches(); 
         //Pattern pattern = Pattern.compile("[0-9a-zA-Z]*.[0-9a-zA-Z]*@[a-zA-Z]*.[a-zA-Z]*", Pattern.LITERAL);   
        if(email == null){  
            return false;  
        }  
          
        //验证开始   
          
        //不能有连续的.   
        if(email.indexOf("..") != -1){  
            return false;  
        }  
          
        //必须带有@   
        int atCharacter = email.indexOf("@");  
        if (atCharacter == -1) {  
            return false;  
        }  
          
        //最后一个.必须在@之后,且不能连续出现   
        if(atCharacter > email.lastIndexOf('.') || atCharacter+1 == email.lastIndexOf('.')){  
            return false;  
        }  
          
        //不能以.,@结束和开始   
        if (email.endsWith(".") || email.endsWith("@") || email.startsWith(".") || email.startsWith("@")) {  
            return false;  
        }  
        return true;  

    }
  
    /**
     * 手机号校验
     * @param mobiles
     * @return true:手机号格式正确; false:手机号格式不正确
     */
    public static boolean isMobileNO(String mobiles){     
        String str = "^1[3|4|5|8][0-9][0-9]{8}$";
        //String str = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
        Pattern p = Pattern.compile(str);     
        Matcher m = p.matcher(mobiles.trim());     
        return m.matches();     
    }
    
}
点赞
收藏
评论区
推荐文章
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
皕杰报表之数据校验与处理
填报校验分为四种:长度验证、内容校验、计算校验、JavaScript校验。长度校验非空验证就是验证该单元格的值不能为空。内容校验适宜于验证输入内容的格式,譬如:邮箱验证、身份证验证、手机号码验证、邮政编码验证等。计算效验计算效验就是可以进行一些简单的计算校验。JavaScript校验JavaScript校验就是可以与使用一些javascript语言进行校验。
Wesley13 Wesley13
3年前
Java中的参数验证(非Spring版)
1\.Java中的参数验证(非Spring版)1.1.前言为什么我总遇到这种非正常问题,我们知道很多时候我们的参数校验都是放在controller层的传入参数进行校验,我们常用的校验方式就是引入下列的jar包,在参数中添加@Validated,并对Bean对象的参数做不
Wesley13 Wesley13
3年前
Java日期时间API系列35
  通过Java日期时间API系列1Jdk7及以前的日期时间类(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fxkzhangsanx%2Fp%2F12032719.html)中得知,Java8以前除了java.sql.Timestamp扩充
Stella981 Stella981
3年前
HTML5新增input标签属性
一.inputtype属性1<formaction""2邮箱<inputtype"email"name""id""<inputtype"submit"value"提交"<br/<br/3手机号码<inputtype"tel"name
Wesley13 Wesley13
3年前
JAVA_常用类
//importjava.text.SimpleDateFormat;//格式化日期//importjava.util.Calendar;//日期//importjava.util.Date;//时间//importjava.util.GregorianCalendar;//Calendar的子类import
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
京东云开发者 京东云开发者
5个月前
SpringBoot如何优雅的进行参数校验(一)
SpringBoot如何优雅的进行参数校验一.为什么要进行参数校验在日常的开发过程中,我们常常需要对传入的参数进行校验,比如在web前后端分离项目中,参数校验有两个方面:前端进行参数校验后端进行参数校验那这两种有什么区别呢?只完成一个可不可以呢?答案是不可