JavaScript 判断日期格式是否正确的实现代码

时间:2011-07-05 12:37:44 

没有多大变动,主要是返回错误信息,以便调用函数部分可以alert出来。据说可以用正则表达式校验,下次再研究下。


//---------------------------------------------------------------------------
//判断日期格式是否正确
//返回值是错误信息, 无错误信息即表示合法日期字符串
function isDateString(strDate){
var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;
var ErrorMsg = ""; //出错信息
strDateArray = strDate.split(strSeparator);
//没有判断长度,其实2008-8-8也是合理的//strDate.length != 10 ||
if(strDateArray.length != 3) {
ErrorMsg += "日期格式必须为: yyyy-MM-dd";
return ErrorMsg;
}
intYear = parseInt(strDateArray[0],10);
intMonth = parseInt(strDateArray[1],10);
intDay = parseInt(strDateArray[2],10);
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) {
ErrorMsg += "日期格式错误: 年月日必须为纯数字";
return ErrorMsg;
}
if(intMonth>12 || intMonth<1) {
ErrorMsg += "日期格式错误: 月份必须介于1和12之间";
return ErrorMsg;
}
if((intMonth==1||intMonth==3||intMonth==5||intMonth==7
||intMonth==8||intMonth==10||intMonth==12)
&&(intDay>31||intDay<1)) {
ErrorMsg += "日期格式错误: 大月的天数必须介于1到31之间";
return ErrorMsg;
}
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)
&&(intDay>30||intDay<1)) {
ErrorMsg += "日期格式错误: 小月的天数必须介于1到31之间";
return ErrorMsg;
}
if(intMonth==2){
if(intDay < 1) {
ErrorMsg += "日期格式错误: 日期必须大于或等于1";
return ErrorMsg;
}
boolLeapYear = false;
if((intYear%100) == 0){
if((intYear%400) == 0)
boolLeapYear = true;
}
else{
if((intYear % 4) == 0)
boolLeapYear = true;
}
if(boolLeapYear){
if(intDay > 29) {
ErrorMsg += "日期格式错误: 闰年的2月份天数不能超过29";
return ErrorMsg;
}
} else {
if(intDay > 28) {
ErrorMsg += "日期格式错误: 非闰年的2月份天数不能超过28";
return ErrorMsg;
}
}
}
return ErrorMsg;
}

标签:正则表达式,日期,javascript
0
投稿

猜你喜欢

  • 用css和js实现firefox和IE支持局部打印

    2008-05-23 13:04:00
  • 从mysql到oracle你必须了解的50件事儿

    2010-08-05 14:36:00
  • 简洁的是最好的吗?

    2010-06-24 21:46:00
  • 求英文字母或数字或下划线或汉字的js正则表达式

    2009-08-04 17:59:00
  • 优化次数过多的循环

    2009-11-12 12:35:00
  • WEB2.0网页制作标准教程(7)CSS学习入门

    2007-12-13 13:12:00
  • 从 msxml6.dll 中获取 DOMDocument 对象的方法与属性

    2009-02-22 18:46:00
  • 《写给大家看的设计书》阅读笔记之对比原则

    2009-07-15 10:14:00
  • asp中文URL编码server.urlencode

    2008-08-08 11:22:00
  • “语法错误 (逗号) 在查询表达式id=20, 21”,怎么处理这个逗号?

    2009-09-18 14:52:00
  • 防止Access 2000密码被破译的方法

    2008-11-20 16:48:00
  • 如何用表单的方式推送请求的信息?

    2010-06-16 09:47:00
  • 用正则表达式找出不包含连续字符串abc的单词

    2010-03-02 20:28:00
  • 使用 XML 文件记录操作日志

    2008-09-05 17:13:00
  • 页面自动刷新javascript代码大全

    2010-06-28 18:54:00
  • Oracle 函数大全

    2009-07-23 14:29:00
  • ajax实现Dig程序中的投票

    2008-01-22 17:27:00
  • 自定义404错误页面实现自动跳转

    2007-12-10 18:25:00
  • 跨浏览器的本地存储(二):DOM:Storage

    2008-08-15 13:39:00
  • sqlserver 触发器实例代码

    2012-01-29 18:30:45
  • asp之家 网络编程 m.aspxhome.com