如何用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 27 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
JavaScript设计模式之抽象工厂模式介绍
Dec 28 Javascript
Grunt入门教程(自动任务运行器)
Aug 06 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
Sep 17 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
May 13 jQuery
vue+webpack dev本地调试全局样式引用失效的解决方案
Nov 12 Javascript
js 计算月/周的第一天和最后一天代码
Feb 01 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 Javascript
[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
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
php cookie 登录验证示例代码
2009/03/16 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
Python中多线程的创建及基本调用方法
2016/07/08 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
在python 中实现运行多条shell命令
2019/01/07 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
网络技术专业求职信
2014/07/13 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
秋季运动会加油词
2015/07/18 职场文书
会计实训总结范文
2015/08/03 职场文书
法律服务所工作总结
2015/08/10 职场文书
企业年会祝酒词
2015/08/11 职场文书
高一数学教学反思
2016/02/18 职场文书