精华内容
下载资源
问答
  • 日期正则校验:前后端都适用,有平年、闰年校验之分,也兼顾yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd 格式 String DATAREG = "^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])([-/.]?)(?:0?[1-9]|1[0-9]|2[0-8])|(?:...

    日期正则校验:前后端都适用,有平年、闰年校验之分,也兼顾yyyyMMdd、yyyy-MM-dd、yyyy/MM/dd 格式

    String DATAREG = "^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])([-/.]?)(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])([-/.]?)(?:29|30)|(?:0?[13578]|1[02])([-/.]?)31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2([-/.]?)29)$";

    时间戳转换为年月日时分秒:yyyy-MM-dd HH:MM:SS

    var curr_time = new Date(data.time);
    var year = curr_time.getFullYear();
    var month = curr_time.getMonth() + 1 < 10 ? '0' + (curr_time.getMonth() + 1) : curr_time.getMonth() + 1;
    var day = curr_time.getDate() < 10 ? '0' + curr_time.getDate() : curr_time.getDate();
    var time1 = year + "-" + month + "-" + day + " " + curr_time.getHours() + ":" + curr_time.getMinutes() + ":" + curr_time.getSeconds();

    console.log(time1);

    给定日期格式转换日期:(转载 //author: meizz)

    Date.prototype.Format = function(fmt) { //fmt:yyyy-MM-dd hh:mm:ss(实参)
        var o = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(), //日
            "h+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for(var k in o)
            if(new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }

    新增:不属于上述逻辑内容

    这里添加一个后台的正常时间传入到前端的时间变为毫秒数字的问题:

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    //@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;//归档时间,也是归档的版本号

    很显然是在后台修改的;

    展开全文
  • 一,前端jsp页面有一文本框输入时间 HH:mm:ss格式的 另一个文本框要求输入yyyymmdd格式日期  时间:  由于未用到任何时间插件,只能通过js校验输入的时间是否正确,最简单的莫过于使用正则校验了,  ...

    一,前端jsp页面有一文本框输入时间  HH:mm:ss格式的   另一个文本框要求输入yyyymmdd格式的日期

           时间:

           由于未用到任何时间插件,只能通过js校验输入的时间是否正确,最简单的莫过于使用正则来校验了,

           var regex = /^(([0-2][0-3])|([0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;

           var一个正则表达式,这个表达式检验的就是hh:mm:ss格式的字符串。

           但是如果用户只输入10:20,而最后的  :00  省略掉,难道要提示用户重新输入吗?

           NO,只需要改一下正则表达式即可。

           var regexs = /^(([0-2][0-3])|([0-1][0-9])):[0-5][0-9]$/;

           这个正则和上边的相比只是把最后的  :ss   给去掉了。

           日期:

           直接在js中通过Date对象来进行校验,但是这种方式不推荐使用,因为在java中Date date = new Date(yyyy,mm,dd);这个方法已经不推荐了。

    二,校验

           然后,我们就可以写js来校验了
           

           //提交表单
    
           function submit(){
                  //时间
    
                  var time = form.time.value;
                  
                  var regex = /^(?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;
    
                  if(!regex.test(time)){
    
                          var regexs = /^(?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]$/;
    
                          if(!regexs.test(time)){
    
                              alert("时间格式不正确,请输入正确格式如   10:20 或 10:20:20");
    
                              form.time.focus();//获取焦点
    
                              return;
    
                             }
    
                             form.time.value = time + ":00";
    
                  }
                    
                  //日期
                  var riqi = form.riqi.value;
                  if(riqi != ''){
                        var xxDate = new 
                         Date(riqi.substring(0,4),riqi.substring(4,6)-1,riqi.substring(6,8));
                        if(riqi.substring(0,4) != xxDate.getFullYear() || riqi.substring(4,6) != xxDate.getMonth() || riqi.substring(6,8) != xxDate.getDate()){
    
                            alert("日期格式不正确,");
    
                              form.riqi.focus();//获取焦点
    
                              return;
    }
                    }
    
           }

    三,正则

           在刚开始不太熟悉正则的时候我的js校验代码是介个样子的:

    function isTime(timeStr){
        var parts;
        parts = timeStr.spilt(":");
        if(parts.length < 1){
            return false;
        }
        
        for(i=0;i<parts.length;i++){
            if(isNaN(parts[i])){
                return false;
            }
        }
        h = parts[0];
        m = parts[1];
        if(h<0||h>23){
            return false;
        }
        if(m<0||m>59){
            return false;
        }
        if(parts.length == 3){
            if(parts[2]<0 || parts[2]>59){
                return false;
            }
        }
        return true;
    }

        这段代码和上边的正则没有对比就没有伤害。

        建议正则不太熟悉的去深入了解一下。

    展开全文
  • 日期正则表达式校验

    2020-05-08 15:31:48
    有的时候需要判断日期格式是否满足特定的格式,正则匹配是比较好的方法。下面罗列了常见日期格式正则表达式,当前还没有考虑闰年和非闰年的情况。 1.匹配日期格式:yyyy-MM-dd HH:mm:ss String ...

    日期的格式多种多样,有如:"yyyy-MM-dd HH:mm:ss"、"yyyy/MM/dd HH:mm:ss"、"yyyyMMdd HH:mm:ss"等,当然也有的只记录到天。有的时候需要判断日期格式是否满足特定的格式,正则匹配是比较好的方法。下面罗列了常见日期格式的正则表达式,当前还没有考虑闰年和非闰年的情况。

     

    1.匹配日期格式:yyyy-MM-dd HH:mm:ss

    String timeRegex = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";
     
    boolean flag = Pattern.matches(timeRegex, "2012-12-31 12:07:59");


    2.匹配日期格式:yyyy-MM-dd

    String timeRegex1 = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|"+
    "((0[48]|[2468][048]|[3579][26])00))-02-29)$";
     
    System.out.println(Pattern.matches(timeRegex1, "2018-11-30"));


    3.匹配日期格式:yyyy/MM/dd

    String timeRegex2 = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})\\/(((0[13578]|1[02])\\/(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)\\/(0[1-9]|[12][0-9]|30))|(02\\/(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|"+
    "((0[48]|[2468][048]|[3579][26])00))\\/02\\/29)$";
     
    System.out.println(Pattern.matches(timeRegex2,"2018/12/31"));


    4.匹配日期格式:yyyy/MM/dd HH:mm:ss

    String timeRegex3 = "((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})\\/(((0[13578]|1[02])\\/(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)\\/(0[1-9]|[12][0-9]|30))|(02\\/(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|"+
    "((0[48]|[2468][048]|[3579][26])00))\\/02\\/29))\\s([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";
     
    System.out.println(Pattern.matches(timeRegex3,"2018/12/30 12:29:59"));


    5.匹配日期格式:yyyyMMdd

    String timeRegex4 = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|"+
    "((0[48]|[2468][048]|[3579][26])00))0229)$";
     
    System.out.println(Pattern.matches(timeRegex4, "20181223"));


    6.匹配日期格式:yyyyMMddHHmmss

    String timeRegex5 = "((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))"+
    "([0-1][0-9]|2[0-3])([0-5][0-9])([0-5][0-9])$";
     
    System.out.println(Pattern.matches(timeRegex5, "20181228162437"));


    7.匹配格式:yyyyMMddHHmmssSSS

    String timeRegex6 = "((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|"+
    "((0[48]|[2468][048]|[3579][26])00))0229))([0-1][0-9]|2[0-3])([0-5][0-9])([0-5][0-9])([0-9]{3})$";
     
    System.out.println(Pattern.matches(timeRegex6,"20181227182439000"));


    8.匹配格式:yyyyMMdd HH:mm:ss

    String timeRegex7 = "((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|"+
    "((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|"+
    "((0[48]|[2468][048]|[3579][26])00))0229))\\s([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";
     
    System.out.println(Pattern.matches(timeRegex7, "20181227 07:20:36"));
     

     

    需要注意的是以上的正则只能在ide里面生效。直接测试可能不匹配,原因是ide会加上转义字符\\

    展开全文
  • 最近做的事情,日期时间用的是字符串在传,需要对之进行校验。?网上看了看,没找到非常满意的,于是自己动手,写了一个。?其中不完美的是:没有根据闰年判断2月分有没有29这一天。?其中要说明的:?1、年份限制在2000...

    最近做的事情,日期时间用的是字符串在传,需要对之进行校验。

    ?

    网上看了看,没找到非常满意的,于是自己动手,写了一个。

    ?

    其中不完美的是:没有根据闰年判断2月分有没有29这一天。

    ?

    其中要说明的:

    ?

    1、年份限制在2000~2999这1000年中。

    2、基本格式如下:

    年:yyyy

    月:yyyy-[M]M

    日:yyyy-[M]M-[d]d

    时:yyyy-[M]M-[d]d HH:00:00

    时间:yyyy-[M]M-[d]d HH:mm:ss

    ?

    private static final String yearPattern = "^2[0-9]{3}$";

    private static final String monthPattern = "^2[0-9]{3}-(0?[1-9]|1[0-2])$";

    private static final String janPattern = "(0?[13578]|1[02])-(0?[1-9]|[12][0-9]|3[01])";

    private static final String febPattern = "0?2-(0?[1-9]|[12][0-9])";

    private static final String aprPattern = "(0?[469]|11)-(0?[1-9]|[12][0-9]|30)";

    private static final String dayPattern = String.format("^2[0-9]{3}-(%s|%s|%s)$", janPattern, febPattern, aprPattern);

    private static final String hourFormat = String.format("^2[0-9]{3}-(%s|%s|%s) ([01][0-9]|2[0-3]):00:00$", febPattern, janPattern, aprPattern);

    private static final String timeFormat = String.format("^2[0-9]{3}-(%s|%s|%s) ([01][0-9]|2[0-3])(:[0-5][0-9]){2}$", febPattern, janPattern, aprPattern);

    public static void main(String[] args) {

    System.out.println("2000".matches(yearPattern));

    System.out.println("2999".matches(yearPattern));

    System.out.println("1999".matches(yearPattern));

    System.out.println("20001".matches(yearPattern));

    System.out.println("200".matches(yearPattern));

    System.out.println("2000-11".matches(monthPattern));

    System.out.println("2000-01".matches(monthPattern));

    System.out.println("2000-1".matches(monthPattern));

    System.out.println("2000-13".matches(monthPattern));

    System.out.println("2000-00".matches(monthPattern));

    System.out.println("2000-11-1".matches(dayPattern));

    System.out.println("2000-11-01".matches(dayPattern));

    System.out.println("2000-11-31".matches(dayPattern));

    System.out.println("2000-11-00".matches(dayPattern));

    System.out.println("2000-11-29".matches(dayPattern));

    System.out.println("2000-2-29".matches(dayPattern));

    System.out.println("2000-2-30".matches(dayPattern));

    System.out.println("2000-11-1 18:60:00".matches(hourFormat));

    System.out.println("2000-11-1 18:00:10".matches(hourFormat));

    System.out.println("2000-1-1 18:00:00".matches(hourFormat));

    System.out.println("2000-11-1 28:00:00".matches(hourFormat));

    System.out.println("2000-11-1 08:00:00".matches(hourFormat));

    System.out.println("2000-11-1_18:00:00".matches(hourFormat));

    System.out.println("2000-11-1 08:00:00".matches(timeFormat));

    System.out.println("2000-11-1 08:10:00".matches(timeFormat));

    System.out.println("2000-11-1 08:00:50".matches(timeFormat));

    System.out.println("2000-11-1 08:00:70".matches(timeFormat));

    }

    ?

    ?

    原文:http://lippeng.iteye.com/blog/2297769

    展开全文
  • 最近做的事情,日期时间用的是字符串在传,需要对之进行校验。网上看了看,没找到非常满意的,于是自己动手,写了一个。其中不完美的是:没有根据闰年判断2月分有没有29这一天。其中要说明的:1、年份限制在2000~...
  • 正则校验正则校验和内容格式替换一、正则校验1.手机号码2.QQ号3.微信号4.车牌号5.身份证号码6.邮箱7.判断中文符号二、内容格式替换1.手机号加密显示2.验证日期字符串是否符合 YYYY-MM-DD 格式3.数字转格式4.身份证的...
  • jquery正则校验时间格式

    千次阅读 2015-09-19 20:30:23
    //日期格式yyyy PatternsDict.date_y= /^(\d{4})$/; //日期格式yyyy-mm PatternsDict.date_ym= /^(\d{4})-(0\d{1}|1[0-2])$/; //日期格式yyyy-mm-dd PatternsDict.date_ymd= /^(\d{4})-(0\d{1}|1[0-2])-(0\d{1}|...
  • 正则表达式校验日期格式

    千次阅读 2019-04-02 09:34:23
    如下正则可以满足校验: public static boolean isDate(String date){ ... * 判断日期格式和范围 */ String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))...
  • 正则表达式校验YYYYMMDD日期格式 首先,我们先了解2个概念: 1、合法的日期范围: DateTime值类型表示值范围在公元(基督纪元...
  • Java 日期 时间 字符串 正则 校验

    千次阅读 2016-05-12 15:55:04
    最近做的事情,日期时间用的是字符串在传,需要对之进行校验。   网上看了看,没找到非常满意的,于是自己动手,写了一个。   其中不完美的是:没有根据闰年判断2月分有没有29这一天。   其中要说明的: ...
  • 正则表达式,正则表达式校验日期,正则表达式校验时间‘ title :使用正则表达式校验时间,精确到秒,包括年月日时分秒,14位格式精确校验正则表达式精确校验时间
  • js 前台正则校验

    2020-09-14 00:06:41
    /判断输入内容是否为空 function IsNull(){ var str = document.getElementById(‘str’).value.trim(); if(str.length==0){ alert(‘对不起,文本框不能为...//判断日期类型是否为YYYY-MM-DD格式的类型 function IsDa
  • 经常遇见的正则校验

    2018-08-15 18:09:11
    收集在业务中经常使用...1. 校验基本日期格式 var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/; var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/; 2. 校验...
  • public static void main(String[] args) { //MM/dd/... } 参考文章: 正则表达式和日期操作:https://www.cnblogs.com/yangliguo/p/7498062.html 正则表达式校验时间:https://www.cnblogs.com/yyy-blog/p/10593983.html
  • 日期格式如下:2020-09-25 00:00:00,并且中间-是可以省略的,那么我们到了后台就需要将时间给转换回来 ^((\d{2}(([02468][048])|([13579][26]))[\-]?((((0[13578])|(1[02]))[\-]?((0[1-9])|([1-2][0-9])|(3[01])))|...
  • 首先,我们先了解2个概念:1、合法的日期范围:DateTime值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间。2、平年和闰年地球绕...
  • 1、合法的日期范围: DateTime值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间。 2、平年和闰年 地球绕太阳公转一周叫做...
  • 今天校验日期格式,故记录下; 一、校验yyyy年MM月; /**yyyy年MM月 或者 yyyy年M月**/ private static final String MONTH_REGEX = "^([1-9]\\d{3}年)(([0]{0,1}[1-9]月)|([1][0-2]月))$"; /*** * @desc ...
  • 校验中文,校验E-Mail地址,校验密码格式校验中文格式校验身份证号码,校验手机号,提取网页图片,提取页面超链接,校验日期校验金额,校验中文,判断IE的版本
  • JavaScript 正则表达式校验日期格式

    千次阅读 2012-01-13 10:58:28
    New Document ...出生日期: var DATE_FORMAT = /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/; function checkDate(){ var birthday = document.getElementById("birthday").value;
  • 正则表达式,一个十分古老而又强大的文本处理工具...正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/; var r = fieldVa...
  • 身份证号码校验正则表达式校验日期格式校验、18位身份证末尾校验校验 前六位省市县号码变更频繁,这里就不做校验 import java.text.ParseException; import java.util.regex.Matcher; import java.util....
  • 正则表达式校验日期

    千次阅读 2016-11-29 18:26:15
    正则表达式验证2000-2099年的日期格式MM\DD\YYYY ((((0[13578]|1[02])\/(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)\/(0[1-9]|[12][0-9]|30))|(02\/(0[1-9]|[1][0-9]|2[0-8])))\/(20[0-9]{2}))|(02\/29\/(20(0[48]|...
  • 今天校验日期格式,故记录下;一、校验yyyy年MM月;/**yyyy年MM月 或者 yyyy年M月**/private static final String MONTH_REGEX = "^([1-9]\\d{3}年)(([0]{0,1}[1-9]月)|([1][0-2]月))$";/**** @desc 校验月份的...
  • 校验日期正则表达式

    千次阅读 2017-08-24 10:09:24
    校验日期格式为yyyy-MM-dd HH:mm:ss的正则表达式 public static boolean validateTimeFormat(String dateStr){ String eL= "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 580
精华内容 232
关键字:

日期格式正则校验