精华内容
下载资源
问答
  • 前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。 日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,...
  • 日期时间正则表达式

    万次阅读 2018-09-16 10:18:31
    //日期正则表达式 var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/; var regExp = ne
    原文地址为:
    日期和时间的正则表达式
    

     

     


    //日期的正则表达式
    var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
    var regExp = new RegExp(reg);
    if(!regExp.test(value)){
      alert("日期格式不正确,正确格式为:2014-01-01");
      return;
    }

     

    //时间的正则表达式
    var reg = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
    var regExp = new RegExp(reg);
    if(!regExp.test(value)){
      alert("时间格式不正确,正确格式为:12:00:00");
      return;
    }

     

    //日期+时间的正则表达式

    var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
    var regExp = new RegExp(reg);
    if(!regExp.test(value)){
      alert("时间格式不正确,正确格式为: 2014-01-01 12:00:00 ");
      return;
      }
    });


    转载请注明本文地址: 日期和时间的正则表达式
    展开全文
  • 前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。 日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,...
  • 时间日期正则表达式

    千次阅读 2018-08-24 15:47:46
    时间日期正则表达式 一 时间日期对象 Date() var box = new Date(); alert(box.getTime()); //获取日期的毫秒数,和 valueOf()返回一致 alert(box.setTime(100)); //以毫秒数设置日期,会改变整个日期 alert...

    时间日期与正则表达式

    一 时间日期对象 Date()

    var box = new Date();
    alert(box.getTime());             //获取日期的毫秒数,和 valueOf()返回一致
    alert(box.setTime(100));          //以毫秒数设置日期,会改变整个日期
    alert(box.getFullYear());         //获取四位年份
    alert(box.setFullYear(2012));     //设置四位年份,返回的是毫秒数
    alert(box.getMonth());            //获取月份,没指定月份,从 0 开始算起
    alert(box.setMonth(11));          //设置月份
    alert(box.getDate());             //获取日期
    alert(box.setDate(8));            //设置日期,返回毫秒数
    alert(box.getDay());              //返回星期几,0 表示星期日,6 表示星期六
    alert(box.setDay(2));             //设置星期几
    alert(box.getHours());            //返回时
    alert(box.setHours(12));          //设置时
    alert(box.getMinutes());          //返回分钟
    alert(box.setMinutes(22));        //设置分钟
    alert(box.getSeconds());          //返回秒数
    alert(box.setSeconds(44));        //设置秒数
    alert(box.getMilliseconds());     //返回毫秒数
    alert(box.setMilliseconds());     //设置毫秒数
    alert(box.getTimezoneOffset());   //返回本地时间和 UTC 时间相差的分钟数

     二 正则表达式对象 RegExp()

                                                                     RegExp对象的方法

    方  法

    功  能

    test

    在字符串中测试模式匹配,返回true或false

    exec

    在字符串中执行匹配搜索,返回结果数组

                                                             String对象中的正则表达式方法

    方  法

    含  义

    match(pattern)

    返回pattern中的子串或null

    replace(pattern, replacement)

    用replacement替换pattern

    search(pattern)

    返回字符串中pattern开始位置

    split(pattern)

    返回字符串按指定pattern拆分的数组

                                                                           RegExp对象的静态属性

    属  性

    短  名

    含  义

    input

    $_

    当前被匹配的字符串

    lastMatch

    $&

    最后一个匹配字符串

    lastParen

    $+

    最后一对圆括号内的匹配子串

    leftContext

    $`

    最后一次匹配前的子串

    multiline

    $*

    用于指定是否所有的表达式都用于多行的布尔值

    rightContext

    $'

    在上次匹配之后的子串

                                                                           RegExp对象的实例属性

    属  性

    含  义

    global

    Boolean值,表示g是否已设置

    ignoreCase

    Boolean值,表示i是否已设置

    lastIndex

    整数,代表下次匹配将从哪里字符位置开始

    multiline

    Boolean值,表示m是否已设置

    Source

    正则表达式的源字符串形式

     

    获取控制

    正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。反斜杠后的元字符将失去其特殊含义。

    字符类:单个字符和数字

    元字符/元符号

    匹配情况

    .

    匹配除换行符外的任意字符

    [a-z0-9]

    匹配括号中的字符集中的任意字符

    [^a-z0-9]

    匹配任意不在括号中的字符集中的字符

    \d

    匹配数字

    \D

    匹配非数字,同[^0-9]相同

    \w

    匹配字母和数字及_

    \W

    匹配非字母和数字及_

     

    字符类:空白字符

    元字符/元符号

    匹配情况

    \0

    匹配null字符

    \b

    匹配空格字符

    \f

    匹配进纸字符

    \n

    匹配换行符

    \r

    匹配回车字符

    \t

    匹配制表符

    \s

    匹配空白字符、空格、制表符和换行符

    \S

    匹配非空白字符

     

    字符类:锚字符

    元字符/元符号

    匹配情况

    ^

    行首匹配

    $

    行尾匹配

    \A

    只有匹配字符串开始处

    \b

    匹配单词边界,词在[]内时无效

    \B

    匹配非单词边界

    \G

    匹配当前搜索的开始位置

    \Z

    匹配字符串结束处或行尾

    \z

    只匹配字符串结束处

     

    字符类:重复字符

    元字符/元符号

    匹配情况

    x?

    匹配0个或1个x

    x*

    匹配0个或任意多个x

    x+

    匹配至少一个x

    (xyz)+

    匹配至少一个(xyz)

    x{m,n}

    匹配最少m个、最多n个x

     

    字符类:替代字符

    元字符/元符号

    匹配情况

    this|where|logo

    匹配this或where或logo中任意一个

     

     

    字符类:记录字符

    元字符/元符号

    匹配情况

    (string)

    用于反向引用的分组

    \1或$1

    匹配第一个分组中的内容

    \2或$2

    匹配第二个分组中的内容

    \3或$3

    匹配第三个分组中的内容

    贪  婪

    惰  性

    +

    +?

    ?

    ??

    *

    *?

    {n}

    {n}?

    {n,}

    {n,}?

    {n,m}

    {n,m}?

    展开全文
  • 时间日期正则

    千次阅读 2017-11-02 12:28:52
    PS:学了正则表达式那么久,也没做出什么像样的模式出来,早上一觉醒来突发奇想,下定决心要证明一下咱正则可不是白学的——于是选择了最常见的日期匹配……   日期格式:年-月-日,即yyyy-mm-dd,如今天的日期为...

    PS:学了正则表达式那么久,也没做出什么像样的模式出来,早上一觉醒来突发奇想,下定决心要证明一下咱正则可不是白学的——于是选择了最常见的日期匹配……

     

    日期格式:年-月-日,即yyyy-mm-dd,如今天的日期为2008-11-1,当然按照yyyy-mm-dd的模式就是2008-11-01。我们的表达式应该同时匹配这两种日期——月、日为个位数的时候,前边的‘0’可有可无。

     

    再有的一点,估计我们匹配万年历的机会不是太多,一般情况下,小打小闹,匹配个生辰八字,起始、终止日期就够了,于是我的表达式只匹配1900-2099——估计就我一般年龄的人是很难超越这两个年份的吧……

     

    废话少说,开始写表达式吧。

     

    首先当然是年份了——/((19|20)\d{2})/。(这里用了Perl的写法,由于Javascript沿用了此法,而且这种方法确实很简洁,所以我个人非常喜欢。)

     

    匹配年份是整个表达式中最简单的部分,以下建立月和日的表达式可能出现多种情况,我只能在整个表达式中建立多种模式以供匹配的时候选择,在这些模式中,年份的部分基本上是一样的(除了闰年)。

     

    小学生都知道的一件事:一年的12个月里,1、3、5、7、8、10、12月份中每月有31天,4、6、9、11月份中每月有30天,而2月最特殊,2月份只有28天而且闰年的时候是29天——对于闰年,我们等处理完一般情况再考虑特殊处理。

     

    31天的月份——/(0?[13578]|1[02])/

    日期——/(0?[1-9]|[12]\d|3[01])/

    1. 综上,匹配31天的月份模式为:/(年)-(月)-(日)/,即/((19|20)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01])/

     

    30天的月份——/(0?[469]|11)/

    日期——/(0?[1-9]|[12]\d|30)/

    2. 综上,匹配30天的月份模式为:/(年)-(月)-(日)/,即/((19|20)\d{2})-(0?[469]|11)-(0?[1-9]|[12]\d|30)/

     

    以下匹配一般年份的2月,即28天的2月。

    月份——/0?2/

    日期——/(0?[1-9]|1\d|2[0-8])/

    3. 综上,匹配28天的2月模式为:/(年)-(月)-(日)/,即/((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8])/

     

    综合1、2、3,可建立匹配除了闰年之外的日期即——
    /((31天的月份)|(30天的月份)|(28天的2月))/,即——
    /((((19|20)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((19|20)\d{2})-(0?[469]|11)-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8])))/

     

    到了这一步,我们要开始考虑闰年的2月了,我们都知道闰年的2月有29天,但到底什么才是闰年呢??

    我们先花点时间列举出1900-2099之间,那些年份是闰年吧

    1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032,2036,2040,2044,2048,2052,2056,2060,2064,2068,2072,2076,2080,2084,2088,2092,2096

     

    闰年:能够被4整除,若是整百年还必须被400整除,如1900是整百年但不能被400整除所以不是闰年,而2000年是闰年。

     

    或许我们都知道闰年该怎么算,但是正则表达式不知道,正则表达式内部是没有计算能力的,我们所能做的就是替它找出一个能够在有限次内列举出所有可能的解决方案——所以,以上我列举出所有的闰年并不是吃饱了撑着,而是为了替表达式找出规律……

     

    认真分析以上闰年之后,很容易发现:
    1. 个位数必是偶数
    2. 十位数为奇数时,个位数只有两种可能:2和6
    3. 十位数为偶数(除0外)时,个位数有三种可能:0、4、8
    4. 十位数为0时,个位数为4和8,2000年特殊处理

     

    所以,匹配闰年年份如下:/(((19|20)([13579][26]|[2468][048]|0[48]))|(2000))/

    所以,闰年2月分的匹配模式为/(((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-(0?[1-9]|[12]\d)/

     

    综合前面的所有模式,即可得出匹配日期的正则表达式了
    /^((((19|20)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((19|20)\d{2})-(0?[469]|11)-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-(0?[1-9]|[12]\d)))$/

     

    以上表达式并不是最优的,至少以下的方式会比较优良:
    /^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/
    该表达式的匹配规则(按以下序号为顺序):
    1.匹配除了2月份之外的1-30日
    2.若1无法匹配,则匹配1,3,5,7,8,10,12月份的31日
    3.若2无法匹配,则匹配2月份的1-28日

    展开全文
  • 这里是判断YYYY-MM-DD这种格式的,基本上把闰年和2月等的情况都考虑进去了,不过我已经忘了在哪里找到的。 ^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?...
  • 各种格式的时间日期正则表达式

    千次阅读 2015-04-14 18:14:14
    //2015-4-14格式的日期正则表达式 ^((?!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]...

    //2015-4-14格式的日期正则表达式

    ^((?!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)-02-29)$



    //2015/4/14格式的日期正则表达式
    ^((?!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)/02/29)$

    //2015年4月14日格式的日期正则表达式
    ^((?!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)02月29日)$




    //12小时制日期格式正则表达式

     (0[0-9]|1[01]):([0-5][0-9]):([0-5][0-9]) 


    //24小时制日期格式正则表达式

     ^[0-2][0-3]:[0-5][0-9]:[0-5][0-9]$ 


    展开全文
  • 主要介绍了JS匹配日期时间正则表达式,结合实例形式分析了JS匹配日期时间日期+时间时间格式的相关实现技巧,需要的朋友可以参考下
  • Java_正则表达式&时间日期

    千次阅读 2018-12-20 18:56:00
    正则表达式 1.概念 正则表达式(英语:Regular Expression,在代码中常简写为regex)。 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则...
  • 日期正则表达式

    2021-01-27 11:18:25
    日期正则表达式 描述:完美匹配日期时间的正则表达式,包含yyyy-MM-dd HH:mm:ss 和yyyy/MM/dd HH:mm:ss 两种情况的匹配 日期正则表达式:^((\d{4}(-)\d{1,2}(-)\d{1,2})|(\d{4}(/)\d{1,2}(/)\d{1,2}))(\s)\d{1,2}:\d...
  • 对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。 UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。 先考虑与年份无关...
  • 最近遇到了一个日期格式验证的问题,看了一下网上的感觉不够全,适应的格式比较单一,所以自己补全了一下 /^([0-9]{4})(-|\/)([0-1]{1}[0-9]{1}|[0-9]{1})(-|\/)([0-3]{1}[0-9]{1}|[0-9]{1})$/ if (preg_match ("/^...
  • 时间日期正则表达式

    2011-01-15 13:55:00
    简单的日期时间正则表达式
  • 日期正则表达式(很实用) 日期正则表达式(很实用)日期正则表达式(很实用)日期正则表达式(很实用)
  • 验证英文日期格式的正则表达式

    千次阅读 2020-01-13 13:00:41
    matchDate(){ //letdateString='Jan01,2019' letdateString='January01,2019' vardateRegex=newRegExp('^(?:(((Jan(uary)?|Ma(r(ch)?|y)|Jul(y)?|Aug(ust)?|Oct(ober)?|Dec(ember)?...
  • 正则表达式,⼜称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的⼀个概念。正则表达式通常被⽤来检索、替换那些符合某个模式(规则)的⽂本。在众多语⾔中都可以⽀持 ...
  • 主要介绍了Python正则表达式匹配日期时间的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 测试八位数字是否为有效日期
  • 1、合法的日期:MSDN上规定–在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期时间 查看http://msdn.microsoft.com/zh-cn/library/system.datetime...
  • 提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损失95万...2.提取时间正则表达式
  • //YYYY-MM-DD HH:mm:ss 日期正则表达式 private static final String DATE_PATTERN_HHMMSS_REG="(((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|((01[0-9]{2}|0[2-9][0-9...
  • 本文实例讲述了java基于正则表达式实现时间日期的常用判断操作。具体如下: 元字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符...
  • 正则表达式校验日期时间

    千次阅读 2020-08-18 11:25:03
    [0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9])$ 校验 yyyy-MM-dd HH:mm:ss(日期时间之间有一个或多个空格) ^((([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...
  • 本文给大家分享的是使用java结合正则表达式来实现各种日期的格式化功能,代码非常的简单,有需要的小伙伴可以参考下。
  • java日期+正则

    千次阅读 2018-06-19 16:50:39
    正则是最好用的工具 牢记于心一般java对日期的处理 我觉得基本操作吧 就是SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");通过这个 把形如“2018-06-19”的字符串转换成日期(java.util.Date...
  • 日期时间时间日期正则匹配,首字母转大小写,日期工具类,转ASCII码等等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,352
精华内容 30,940
关键字:

时间日期正则