注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

日期校验小结  

2010-05-13 23:58:32|  分类: JavaScript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

说明:下面的内容包括日期格式的校验如:{日期格式必须为”YYYY-MM-DD”等。},日期大小的比较,以及定义一个开始日期必须小于一个结束日期的校验。

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>日期校验</title>

<script type="text/javascript" language="javascript">

       //比较两个日期字符串的大小,DateOne > DateTwo return true{DateOne 、DateTwo为形如"YYYY-MM-DD"格式的日期字符串,我们可以先通过validateDate(dateStr,msg)函数校验,然后在比较大小}

       function compareDate(DateOne,DateTwo)

       {

              var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-"));

              var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1);

              var OneYear = DateOne.substring(0,DateOne.indexOf ("-"));

             

              var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-"));

              var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1);

              var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-"));

             

              if(Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) >

              Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear))

                     return true;

              else

                     return false;

       }

       //检测小的日期{SID为小日期的HTML标签的ID,BID为大日期的HTML标签的ID}

       function checkSmallDate(SID,BID)

       {

              var SV = document.getElementById(SID).value;//获取小日期值

              var BV = document.getElementById(BID).value;//获取大日期值

              if("" !== BV)//如果大日期值不为空,大日期值或得焦点,用来校验大日期

              {

                     document.getElementById(BID).focus();

                     return false;

              }

              if("" == SV)//如果小日期为空,返回,否则,大日期获得焦点

              {

                     return true;    

              }

              else

              {

                     document.getElementById(BID).focus();

                     return false;

              }

       }

       //检测大的日期{SID、BID分别为小、大日期的HTML标签的ID,SMSGBMSG分别代表小、大日期的中文名}

       function checkBigDate(SID,BID,SMSG,BMSG)

       {

              var SV = document.getElementById(SID).value;//获取小日期值

              var BV = document.getElementById(BID).value;//获取大日期值

              if("" == SV && "" == BV) return true;//如果两个日期值为空,返回

              if("" == SV)//如果小日期为空,小日期获得焦点

              {

                     document.getElementById(SID).focus();

                     alert("信息提示:\n" + SMSG + ":必须输入!");

                     return false;

              }

              if("" == BV)//如果大日期为空,大日期获得焦点   

              {

                     document.getElementById(BID).focus();

                     alert("信息提示:\n" + BMSG + ":必须输入!");

                     return false;

              }

              var flag = compareDate(SV,BV);//验证开始日期是否大于结束日期

              if(flag)

              {

                     document.getElementById(SID).focus();

                     alert("信息提示:\n" + SMSG + ":必须小于" + BMSG + "!");

                     return false;

              }    

       }

       //校验日期格式是否为"YYYY-MM-DD"{date,为要校验的日期字符串,msg,为要交验日期的中文名}

       function validateDate(date,msg)

       {//a=/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})/ 可以校验日期格式为YYYY-MM-DD和YYYY/MM/DD

              var a=/^(19[0-9][0-9]|2[0-9][0-9][0-9])(\-)(0[1-9]|1[0-2])(\-)(0[1-9]|[1-2][0-9]|3[0-1])$/

              if(!a.test(date))//通过正则表达式,验证日期是否符合正则表达式所代表的日期

              {

                     alert("信息提示:\n" + msg + "格式,必须是:'YYYY-MM-DD'!");

                     return false;          

              }

              alert("信息提示:\n" + msg + "格式输入正确!");

              return true;    

       }

</script>

</head>

<body>

<form id="form" name="form" method="post" action="">

  测试开始时间

  <input type="text" name="sDate" id="sDate" size="20" maxlength="10"

      onblur="checkSmallDate('sDate','eDate')"/>

  <br /><br />

  测试结束时间

  <input type="text" name="eDate" id="eDate" size="20" maxlength="10"

      onblur="checkBigDate('sDate','eDate','测试开始时间','测试结束时间')" />

  <br /><br />

  测试时间格式

  <input type="text" name="eDate" id="eDate" size="20" maxlength="10"

      onblur="validateDate(this.value,'测试时间A')"/>

  测试时间格式

  <input type="text" name="eDate" id="eDate" size="20" maxlength="10"

      onblur="validateDate(this.value,'测试时间B')"/>

</form>

</body>

</html>

 

2010-05-13

  评论这张
 
阅读(986)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017