如何用javascript判断录入的日期是否合法


Posted in Javascript onJanuary 08, 2007
function IsValidYear(psYear) 
{ 
    var sYear = new String(psYear); 
    if(psYear==null) 
    { 
        return false; 
    } 

    if(isNaN(psYear)==true) 
    { 
        return false; 
    } 
    if(sYear == "") 
    { 
        return true; 
    } 
    if(sYear.match(/[^0-9]/g)!=null) 
    { 
        return false; 
    } 
    var nYear = parseInt(sYear, 10); 
    if((nYear < 0) || (9999 < nYear)) 
    { 
        return false; 
    } 
    return true; 
} 

function IsValidMonth(psMonth) 
{ 
    var sMonth = new String(psMonth); 
    if(psMonth==null) 
    { 
        return false; 
    } 
    if(isNaN(psMonth)==true) 
    { 
        return false; 
    } 
    if(sMonth == "") 
    { 
        return true; 
    } 
    if(sMonth.match(/[^0-9]/g)!=null) 
    { 
        return false; 
    } 
    var nMonth = parseInt(sMonth,10); 
    if((nMonth < 0) || (12 < nMonth)) 
    { 
        return false; 
    } 
    return true; 
} 

function IsValidDay(psDay) 
{ 
    var sDay  = new String(psDay); 
    if(psDay==null) 
    { 
        return false; 
    } 
    if(isNaN(psDay)==true) 
    { 
        return false; 
    } 
    if(sDay == "") 
    { 
        return true; 
    } 
    if(sDay.match(/[^0-9]/g)!=null) 
    { 
        return false; 
    } 
    var nDay = parseInt(psDay, 10); 
    if((nDay < 0) || (31 < nDay)) 
    { 
        return false; 
    } 
    return true; 
} 

function IsValidDate(psYear, psMonth, psDay) 
{ 
    if(psYear==null || psMonth==null || psDay==null) 
    { 
        return false; 
    } 
    var sYear  = new String(psYear); 
    var sMonth = new String(psMonth); 
    var sDay   = new String(psDay); 
    if(IsValidYear(sYear)==false) 
    { 
        return false; 
    } 
    if(IsValidMonth(sMonth)==false) 
    { 
        return false; 
    } 
    if(IsValidDay(sDay)==false) 
    { 
        return false; 
    } 
    var nYear  = parseInt(sYear,  10); 
    var nMonth = parseInt(sMonth, 10); 
    var nDay   = parseInt(sDay,   10); 
    if(sYear=="" &&  sMonth=="" && sDay=="") 
    { 
        return true; 
    } 
    if(sYear=="" || sMonth=="" || sDay=="") 
    { 
        return false; 
    } 
    if(nMonth < 1 || 12 < nMonth) 
    { 
        return false; 
    } 
    if(nDay < 1 || 31 < nDay) 
    { 
        return false; 
    } 
    if(nMonth == 2) 
    { 
        if((nYear % 400 == 0) || (nYear % 4 == 0) && (nYear % 100 != 0)) 
        { 
            if((nDay < 1) || (nDay > 29)) 
            { 
                return false; 
            } 
        } 
        else  
        { 
            if((nDay < 1) || (nDay > 28)) 
            { 
                return false; 
            } 
        } 
    } 
    else if((nMonth == 1)  ||  
            (nMonth == 3)  ||  
            (nMonth == 5)  ||  
            (nMonth == 7)  ||  
            (nMonth == 8)  ||  
            (nMonth == 10) ||  
            (nMonth == 12)) 
    { 
        if((nDay < 1) || (31 < nDay)) 
        { 
            return false; 
        } 
    } 
    else  
    { 
        if((nDay < 1) || (30 < nDay)) 
        { 
            return false; 
        } 
    } 
    return true; 
}
Javascript 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
Mar 07 Javascript
jQuery控制Div拖拽效果完整实例分析
Apr 15 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
react-native封装插件swiper的使用方法
Mar 20 Javascript
在angular 6中使用 less 的实例代码
May 13 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
vue.js的简单自动求和计算实例
Nov 08 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
vue 递归组件的简单使用示例
Jan 14 Vue.js
[IE&amp;FireFox兼容]JS对select操作
Jan 07 #Javascript
javascript中的对象和数组的应用技巧
Jan 07 #Javascript
JavaScript For Beginners(转载)
Jan 05 #Javascript
JavaScript的目的分析
Jan 05 #Javascript
关于JavaScript的gzip静态压缩方法
Jan 05 #Javascript
关于Javascript 的 prototype问题。
Jan 03 #Javascript
彻底搞懂JS无缝滚动代码
Jan 03 #Javascript
You might like
PHP程序员基本要求和必备技能
2014/05/09 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
JSON取值前判断
2014/12/23 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
详解Angular如何正确的操作DOM
2018/07/06 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python调用命令行进度条的方法
2015/05/05 Python
python如何获取服务器硬件信息
2017/05/11 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
PHP开发的一般流程
2013/08/13 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
文史专业毕业生自荐信
2013/11/17 职场文书
自我鉴定怎么写
2013/12/05 职场文书
《钱学森》听课反思
2014/03/01 职场文书
高三毕业评语
2014/12/31 职场文书
新郎答谢词
2015/01/04 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
检察院起诉书
2015/05/20 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android