网页输入框日期型有效性判定一网打尽

原创 2001年12月21日 15:47:00

[著者]zosatapo

[联系]dertyang@263.net

我利用正则表达式写的日期型网页输入框数据是否有效的判定函数。

包含闰年的处理,有兴趣正则表达式的同行,以及需要对网页中日期进行

很好判定的朋友可以参照一下。同时函数支持自我日期输入形式定义。

1#辅助函数(闰年判定)

function isLeapYear(year)
{
 if((year%4==0&&year%100!=0)||(year%400==0))
 {
 return true;
 } 

 return false;
}

2#判定主函数

function dateValidation(object,format)
{
 var regexp,value,index;
 var year,month,day;
 var iyear,imonth,iday;
 var fmt,regfmt,ordfmt;
 var dateArray;

 if(isObject(object))
 {
  value=object.value;
 }
 else if(isString(object)&&!isEmpty(object))
 {
  value=object;
 }
 else
 {
  return false;
 }
 if(isEmpty(format))
 {
  return false;
 }

 fmt=new Array("yyyy/mm/dd","mm/dd/yyyy","dd/mm/yyyy");
 
 regfmt=new Array("/^([0-9]{4})///([0-9]{2})///([0-9]{2})$/","/^([0-9]{2})///([0-9]{2})///([0-9]{4})$/","/^([0-9]{2})///([0-9]{2})///([0-9]{4})$/");

 ordfmt=new Array("123","312","321");

 format=format.toLowerCase();
 for(index=0;index<fmt.length;index++)
 {
  if(format==fmt[index])
  { 
   eval('regexp='+regfmt[index]+';');

   iyear=parseInt(ordfmt[index].charAt(0));
   imonth=parseInt(ordfmt[index].charAt(1));
   iday=parseInt(ordfmt[index].charAt(2));

   break;
  }
 }
 
 if(index==fmt.length)
 {
  alert("Date Format Not Supported!");
  return false;
 }

 if(regexp.test(value)){
  //alert("Date is matched with Format!");
  dateArray=value.match(regexp);

  year=dateArray[iyear];
  month=dateArray[imonth];
  day=dateArray[iday];

  //alert("The Date you have filled is:/nYear:"+year+"/nMonth:"+month+"/nDay:"+day);
  
  if(year<2001)
  {
   alert("Year must be greater than 2001!");
   return false;
  }
  if(month<0||month>12)
  {
   alert("Month must range from 1 to 12!");
   return false;
  }

  if(day<0||day>31)
  {
   alert("Day must range from 1 to 31!");
   return false;
  }
  else
  { 
   if(month==2)
   { 
    if(isLeapYear(year)&&day>29)
    {
     alert("In Month 2,Day must range from 1 to 29!");
     return false;
    }
    
    if(!isLeapYear(year)&&day>28)
    {
     alert("In Month 2,Day must range from 1 to 28!");
     return false;
    }
    
   }

   if((month==4||month==6||month==9||month==11)&&(day>30))
   {
    alert("In this Month ,Day must range from 1 to 30!");
    return false;
   }
  }

 }
 else
 {
  alert("Date isn't matched with Format!/nDate Format:"+format);
  return false;
 }

 return true;
}

 

java日期有效性验证

 private static boolean isValidDate(String strValue ) {//20091001字符串         int d = Integer.parseIn...
  • jifeijixufly
  • jifeijixufly
  • 2009年12月28日 11:11
  • 1203

js 日期有效性验证 的一点思考

在日常项目中经常遇到日期输入验证,以前我遇到的项目是日期只能通过日历控件来选择,最近我同事遇到一个问题是日期除了可以通过日历控件来输入也可以手动来输入,可是我们项目中居然没有日期格式的验证方法(备注:...
  • dz45693
  • dz45693
  • 2016年06月12日 21:50
  • 765

BOM 有效时间

创建BOM时,valid to默认是9999.12.31。如果要设置有效期,可以使用CC01创建change number,然后使用CS02与BOM关联。...
  • sapway
  • sapway
  • 2009年02月17日 21:03
  • 354

核函数的有效性判定

问题:给定一个函数K,我们能否使用K来替代计算,也就说,是否能够找出一个,使得对于所有的x和z,都有? 比如给出了,是否能够认为K是一个有效的核函数。 下面来解决这个问题,给定m个训练样本...
  • cj314583
  • cj314583
  • 2014年12月25日 15:25
  • 1652

一网打尽:贝佐斯与亚马逊时代

全书主要描述了亚马逊从1995年刚开始成立时的一家网上书店到发展到现在成为集网上购物,云计算,Kindle业务的一家巨无霸的看似曲折却又似乎是必然的过程。说这个过程曲折,那是因为Amazon在每次想要...
  • jsjsfm
  • jsjsfm
  • 2017年02月12日 20:17
  • 393

内核对象有效性的判定

一. 内核对象 1.  进程对象(EPROCESS) 较简单的方法是判断EPROCESS中的ExitTime是否为0,如果是0则说明该进程正在运行。但是由于该值不会对进程的运行产生任何影响,如...
  • xiaoxinjiang
  • xiaoxinjiang
  • 2011年11月25日 22:30
  • 918

C#中的textbox可以输入两位有效数字

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar >= '0' && e.Ke...
  • BluewineY
  • BluewineY
  • 2017年04月10日 11:32
  • 523

JS检查日期有效性

最近,在跟一个项目,涉及到填写日期是否正确有效的问题。(PS,这个问题很重要,涉及数据库方面...具体的就不说了...) 虽然我可以限制用户只能使用日期控件填写日期,但是,我发现,这个日期控件好像不...
  • mammay
  • mammay
  • 2013年12月15日 14:02
  • 2856

如何判断文本框中输入的电话号码的有效性

var value = document.getElementById("telephone").value; var p1 = /^(([0/+]/d{2,3}-)?(0/d{2,3})-)?(/d...
  • jsjw18
  • jsjw18
  • 2009年12月18日 18:16
  • 2005

Qt判定Windows文件名有效性

bool isValidFileName(QString text, bool bWithExt) { if(text.isEmpty()) return false; if (bWith...
  • ronggenmiao
  • ronggenmiao
  • 2014年01月20日 16:54
  • 811
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网页输入框日期型有效性判定一网打尽
举报原因:
原因补充:

(最多只允许输入30个字)