如何用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 相关文章推荐
使用JavaScript动态设置样式实现代码及演示动画
Jan 25 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
基于javascript实现彩票随机数生成(简单版)
Apr 17 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
Jul 13 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
使用angular-cli webpack创建多个包的方法
Oct 16 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 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
德生PL990的分析评价
2021/03/02 无线电
php采集时被封ip的解决方法
2010/08/29 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
react基本安装与测试示例
2020/04/27 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
在centos7中分布式部署pyspider
2017/05/03 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
农场厂长岗位职责
2013/12/28 职场文书
亲属关系公证书
2014/04/08 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android