精华内容
下载资源
问答
  • 正则表达式 验证日期

    2011-07-23 12:37:59
    使用正则表达式验证日期格式是否正确。 正确的格式为:2011-07-13 checkdate.jsp 如下 <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request....

    使用正则表达式验证日期格式是否正确。

    正确的格式为:2011-07-13

    checkdate.jsp 如下

    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>检查日期</title>
    <script src="<%=basePath%>/js/jquery-1.4.4.js"></script>
    <script type="text/javascript">
    
     function checkDate(){
     var date=$("#date ").val();
     var checkStr= /^((?!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)$/;
     
     if(!checkStr.test(date)){
       alert("您输入的日期有误(2010-02-12),请重新输入!");
      }else{
       alert("日期输入正确! ");
       }
     }
    
    </script>
    
    
    </head>
    <body>
    
    <div>
    <label>请输入日期:</label>
    <input style="text" id="date"/>
    </div>
    <div>
    <input type="button" value="检测" οnclick="checkDate()"/>
    </div>
    </body>
    </html>
    

     :

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

    2015-08-04 18:30:22
    1.验证日期正则表达式加入闰年的判断以及思路分析 进入正题之前,我们需要澄清两个概念: 一,什么是合法的日期范围?对于不同的应用场景,这个问题有不同的解释。这里采纳MSDN中的约定: DateTime 值...
      
    

    1.验证日期的正则表达式加入闰年的判断以及思路分析

    进入正题之前,我们需要澄清两个概念:

    一,什么是合法的日期范围?对于不同的应用场景,这个问题有不同的解释。这里采纳MSDN中的约定:

    DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间。
    二,关于闰年的阐释。人民教育出版社小学数学室的解释浅明易懂(mediawiki等都没说明为什么整百年份必须是400的倍数时才是闰年):
    关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分 46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就 是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这 样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。
    清楚了以上两个概念,我们进入正题。
    首先需要验证年份,显然,年份范围为 0001 - 9999,匹配YYYY的正则表达式为:
    [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-9] 也可以表示为 /d,但 /d 不如 [0-9] 直观,因此下面我将一直采用 [0-9]

    用正则表达式验证日期的难点有二:一是大小月份的天数不同,二是闰年的考虑。
    对于第一个难点,我们首先不考虑闰年,假设2月份都是28天,这样,月份和日期可以分成三种情况:

    1、月份为 1, 3, 5, 7, 8, 10, 12,天数范围为 01 - 31,匹配MM-DD的正则表达式为:
    (0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])
    2、月份为 4, 6, 9, 11,天数范围为 01-30,匹配MM-DD的正则表达式为:
    (0[469]|11)-(0[1-9]|[12][0-9]|30)
    3、月份为 2,考虑平年情况,匹配MM-DD的正则表达式为:
    02-(0[1-9]|[1][0-9]|2[0-8])
    根据上面的成果,我们可以得到匹配平年日期格式为YYYY-MM-DD的正则表达式:

    ([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])))

    接着我们来解决第二个难点:闰年的考虑。根据闰年的定义,我们可以将闰年分为两类:

    1、能被4整除但不能被100整除的年份。寻找后两位的变化规律,可以很快得到下面的正则匹配:
    ([0-9]{2})(0[48]|[2468][048]|[13579][26])
    2、能被400整除的年份。能被400整除的数肯定能被100整除,因此后两位肯定是00,我们只要保证前两位能被4整除即可,相应的正则表达式为:
    (0[48]|[2468][048]|[3579][26])00
    2.最强验证日期的正则表达式,添加了闰年的验证

    这个日期正则表达式支持
    YYYY-MM-DD 
    YYYY/MM/DD 
    YYYY_MM_DD 
    YYYY.MM.DD的形式

    match : 
    2008-2-29 2008/02/29

    not match : 2008-2-30   2007-2-29

    完整的正则表达式如下:
    ((^((1[8-9]/d{2})|([2-9]/d{3}))([-///._])(10|12|0?[13578])([-///._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]/d{2})|([2-9]/d{3}))([-///._])(11|0?[469])([-///._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]/d{2})|([2-9]/d{3}))([-///._])(0?2)([-///._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-///._])(0?2)([-///._])(29)$)|(^([3579][26]00)([-///._])(0?2)([-///._])(29)$)|(^([1][89][0][48])([-///._])(0?2)([-///._])(29)$)|(^([2-9][0-9][0][48])([-///._])(0?2)([-///._])(29)$)|(^([1][89][2468][048])([-///._])(0?2)([-///._])(29)$)|(^([2-9][0-9][2468][048])([-///._])(0?2)([-///._])(29)$)|(^([1][89][13579][26])([-///._])(0?2)([-///._])(29)$)|(^([2-9][0-9][13579][26])([-///._])(0?2)([-///._])(29)$))
    闰年的2月份有29天,因此匹配闰年日期格式为YYYY-MM-DD的正则表达式为:

    (([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29

    最后,将平年和闰年的日期验证表达式合并,我们得到最终的验证日期格式为YYYY-MM-DD的正则表达式为:

    (([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)

    DD/MM/YYYY格式的正则验证表达式为:

    (((0[1-9]|[12][0-9]|3[01])/((0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|(0[1-9]|[1][0-9]|2[0-8])/(02))/([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}))|(29/02/(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00)))
    展开全文
  • 通过正则表达式验证日期

    千次阅读 2019-03-25 17:31:38
    在JavaScript中使用正则表达式主要是通过正则表达式对象实现的 re=/pattern/[flags] re:必选参数,将要赋值为正则表达式模式的变量名 ...利用正则表达式编写验证日期的JavaScript函数 function CheckDate(str){...

    在JavaScript中使用正则表达式主要是通过正则表达式对象实现的

    re=/pattern/[flags]
    re:必选参数,将要赋值为正则表达式模式的变量名
    pattern:必选参数,要使用的正则表达式模式,以"/"开头和结尾
    flags:可选参数,用于指定匹配的标记,常用的标记有g,I,m
    

    利用正则表达式编写验证日期的JavaScript函数

    function CheckDate(str){
    	var Expression=/^((((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?[13456789]|1[012])(\/|\-)(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})(\/|\-)0?2(\/|\-)(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/; 
    	var objExp=new RegExp(Expression);
    	if(objExp.test(str)==true){
    		return true;
    	}else{
    		return false;
    	}
    }
    

    在这里插入图片描述在这里插入图片描述

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>通过正则表达式验证日期</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	<script language="javascript"> 
    	
    	function CheckDate(str){
    		var Expression=/^((((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?[13456789]|1[012])(\/|\-)(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})(\/|\-)0?2(\/|\-)(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/; 
    		var objExp=new RegExp(Expression);
    		if(objExp.test(str)==true){
    			return true;
    		}else{
    			return false;
    		}
    	}
    	
    	function check(){
    		var mydate = document.getElementById("mydate"); //获得日期文本框对象 
    		if(mydate.value==""){							//判断输入的日期是否为空
    			alert("请输入日期!");
    			mydate.focus();								//使文本框获得焦点
    			return;
    		}		
    		if(!CheckDate(mydate.value)){					//验证日期格式是否正确 
    			alert("您输入的日期不正确,请注意日期格式!");
    			mydate.focus();
    			return;
    		}
    		document.getElementById("dateForm").submit();	
    	}
    	</script>
    	<style type="text/css">
    		table{
    			font-size: 13px;
    			font-family: 楷体;
    			color:navy;
    			border: 1px solid;
    			border-color: olive;
    		}
    		input{
    			font-size: 13px;
    			font-family: 楷体;
    			color:navy;
    		}
    		font{
    			font-size: 12px;
    			font-family: 楷体;
    			color:orangered;
    		}
    	</style>
      </head>
      
      <body>
       <form action="" id="dateForm">
       	<table>
       		<tr>
       			<td>请输入日期:</td>
       			<td>
       				<input type="text" name="mydate" id="mydate">
       				<font>
       					格式为:2010/06/17或2010-06-17
       				</font>
       			</td>
       		</tr>
       		<tr>
       			<td align="center" colspan="2">
       				<input type="button" value="验 证" onclick="check()">
       				
       			</td>
       		</tr>
       	</table>
       </form>
      </body>
    </html>
    
    展开全文
  • C#如何用正则表达式验证日期

    千次阅读 2013-10-17 18:58:36
    常我们在用C#编写系统程序或者Web开发时,都会遇到需要验证输入的字符串是否是日期的情况,下面为大家介绍一种非常全面的用正则表达式验证日期的方法:   public static bool IsDate(string strDate) {

     

    文章转载于:   C#正则表达式验证是否日期    http://www.studyofnet.com/news/11.html

     

    常我们在用C#编写系统程序或者Web开发时,都会遇到需要验证输入的字符串是否是日期的情况,下面为大家介绍一种非常全面的用正则表达式验证日期的方法:

     

        public static bool IsDate(string strDate)
        {
            if (string.IsNullOrEmpty(strDate))
                return false;
            string s_reg = @"^(?ni:(?=\\d)((?'year'((1[6-9])|([2-9]\\d))\\d\\d)(?'sep'[/.-])(?'month'0?[1-9]|1[012])\\2
    
    (?'day'((?<!(\\2((0?[2469])|11)\\2))31)|(?<!\\2(0?2)\\2)(29|30)|((?<=((1[6-9]|[2-9]\\d)(0[48]|
    
    [2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)\\2\\3\\2)29)|((0?[1-9])|(1\\d)|(2[0-
    
    8])))(?:(?=\\x20\\d)\\x20|$))?((?<time>((0?[1-9]|1[012])(:[0-5]?\\d){0,2}(\\x20[AP]M))|([01]?
    
    \\d|2[0-3])(:[0-5]?\\d){1,2}))?)$";
            Regex reg = new Regex(s_reg);
            if (reg.IsMatch(strDate.ToLower()))
                  return true;
            else
                  return false;
         }

     

    展开全文
  • 前台利用正则表达式匹配字符串,验证日期形式的字符串是否合法
  • JavaScript正则表达式验证yyyy-mm-dd格式的日期
  • 根据上一篇文章正则表达式 验证日期合法性(包括匹配闰年)做了日期连接符的扩展,令其连接符支持“-”,“/”,“.”与yyyyMMdd的格式。 若要更换连接符,搜索并替换掉[-/.]{0,1} /** * * Description: 验证...
  • 正则表达式验证日期(YYYY/MM/DD HH)

    千次阅读 2010-12-01 23:22:00
    正则表达式验证日期 格式为:YYYY/MM/DD HH用正则表达式对日期字符串进行验证:说明:1:日期格式为,如:2008/8/8 12或是2008/08/08 23都是正确的。2:可以对0000~9999年中的任一天的日期进行合法性验证。3:对于闰年...
  • 验证日期正则表达式(加入闰年的判断)以及思路分析 进入正题之前,我们需要澄清两个概念: 一,什么是合法的日期范围?对于不同的应用场景,这个问题有不同的解释。这里采纳MSDN中的约定: DateTime 值...
  • 我不知道验证正则怎么写。自己写的好像不对。 本人菜鸟,请帮我把下面的这个验证控件修改一下。 <asp:RegularExpressionValidator runat="server" id="DateValidator" ControlToValidate="TextBox1" ...
  • 正则表达式 验证日期(Asp.net)

    千次阅读 2012-08-21 10:56:57
    #region 日期检测 /// /// 日期验证 yyyy-MM-dd HH:mm:ss /// /// /// 创建人:zhujt ... /// 创建日期:2012-08-21 10:59:25 ... /// 验证日期 public static bool CheckDate(string date)
  • public static boolean isDate(String date) { String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?...
  • 正则表达式验证日期和Email

    千次阅读 2006-12-14 19:58:00
    验证日期(包括验证闰月)^((/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[/...
  • //检验日期格式,合法的格式例如:2000-10-29,月份和天必须是两位,能检测闰年。function isDate(str){var reg=/^(?:(?!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)...
  • Python 正则表达式验证传统日期

    千次阅读 2014-07-16 13:52:47
    正则表达式验证传统日期
  • 本文导读:本文将介绍一段实例代码,来讲解... 通常我们在用C#编写系统程序或者Web开发时,都会遇到需要验证输入的字符串是否是日期的情况,下面为大家介绍一种非常全面的用正则表达式验证日期的方法:   
  • Java™语言的正则表达式支持可以使数据验证更加容易。 您可以定义一个描述有效数据的正则表达式,然后让Java运行时查看它是否匹配。 但是某些类型的数据在不同的语言环境中具有不同的格式。 ResourceBundle类使您...
  • 主要介绍了java正则表达式验证工具类,可以校验电话号码,身份证号码,日期格式,URL,email等等,需要的小伙伴参考下吧。
  • 刚才在网上看到了一些比较全的正则表达式,果断收入囊中。常用符号说明^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的子表达式零次或多次。例如,zo 能匹配 “z” 以及 “zoo”。 等价于{...
  • 在这篇文章里,我已经编写了12个超有用的正则表达式,本文给大家介绍的非常详细,感兴趣的朋友参考下吧
  • JS怎么用正则表达式判断输入的日期格式为 yyyy-mm-dd请大家把具体代码发布一下 ...js 写 验证日期正则表达式按照 这样的验证格式写 年-月-日 例如 1987-09-01 js里正则表达式怎么写如果单纯用正则的话,去掉第一个/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,200
精华内容 16,480
关键字:

正则表达式验证日期