javascript常用日期验证

1、
<script language=javascript>
function isDate(v)
{
  var r = v.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
  if(r==null)
return false;
  var d = new Date(r[1], r[3]-1,r[4]);
  return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
</script>

2、
//component 为要检测的表单的id
function checkDateFormat(component){
strDate = component.value;
//"-",".","/","\"
var reg = /[-|\\|\.|\/|\s]/g;
strDate = strDate.replace(reg, "-");
//"dddd-dd-dd"
var regDate = /^(\d{1,4})(-)(\d{1,2})\2(\d{1,2})$/;
var result = strDate.match(regDate);
if ( result == null ){
return false;
}
var month = ((""+result[3]).length < 2)?("0" + result[3]):("" + result[3]);
var day = ((""+result[4]).length < 2)? ("0" + result[4]):("" + result[4]);
strDate = result[1] + result[2] + month + result[2] + day;
var date = new Date(result[1], result[3]-1,result[4]);
month = ((date.getMonth() + 1) < 10)?("0" + (date.getMonth() + 1)):("" + (date.getMonth() + 1));
day = (date.getDate() < 10)?("0" + date.getDate()):("" + date.getDate());
var newStr=date.getFullYear() + result[2] + month + result[2] + day;
return newStr == strDate;
}

3、
<script langauge=javascript>
function checkDate(obj)//判断日期格式是不是符合
{
var strDate=obj.value;
re=/\d{4}\/\d{2}\/\d{2}/g
if(re.test(strDate))//判断日期格式符合YYYY/MM/DD标准
{
var DateArray=strDate.split("/");
var dateElement=new Date(DateArray[0],parseInt(DateArray[1])-1,DateArray[2]);
if(!((dateElement.getFullYear()==parseInt(DateArray[0]))&&((dateElement.getMonth()+1)==parseInt(DateArray[1]))&&(dateElement.getDate()==parseInt(DateArray[2]))))//判断日期逻辑
{
alert("不符合时间逻辑")
obj.value='';
}
else
{
alert("正确")
}
}
else
{
alert("格式输入错误")
obj.value='';
}

}
</script>
<input name=time1 onblur=checkDate(this)>

4、
<script language=javascript>
String.prototype.isDate = function()
{
   var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
   if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]);
   return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
alert("2002-01-31".isDate());
alert("2002-01-41".isDate());
</script>

5、
function CheckDate(strDate){
var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;
if(!reg.test(strDate)){
alert("日期格式不正确!\n正确格式为:2004-01-01");
return false;
}
var ss=strDate.split("-");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}
else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间
!"); return false}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}
else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!");
return false}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1
-"+daysOfMonth+"之间!"); return false;}
else return true;
}
function CalDays(year,month){
var date= new Date(year,month,0);
return date.getDate();
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}

AddThis Social Bookmark Button

相关文档(Relevant Entries)
免费的Javascript日期输入及选择控件大杂烩!
JavaScript常用检测脚本
JS正则表达式的用法
JAVASCRIPT的常用技术(三)
JAVASCRIPT的常用技术(二)
JAVASCRIPT的常用技术(一)
自适应图片大小的窗口
javascript生成/解析dom的CDATA类型的字段
Posted on September 6, 2006 1:27 PM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/1040

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(Website):
评论(Add your comments):

相关内容