如何用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中的Location地址对象
Jan 16 Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 Javascript
JS实现跟随鼠标立体翻转图片的方法
May 04 Javascript
jQuery表单对象属性过滤选择器实例详解
Sep 13 Javascript
Angular 2.0+ 的数据绑定的实现示例
Aug 09 Javascript
vue-ajax小封装实例
Sep 18 Javascript
jquery实现倒计时小应用
Sep 19 jQuery
Vue刷新修改页面中数据的方法
Sep 16 Javascript
js如何获取访问IP、地区、当前操作浏览器
Jul 23 Javascript
Vue结合路由配置递归实现菜单栏功能
Jun 16 Javascript
vue 清空input标签 中file的值操作
Jul 21 Javascript
原生JavaScript实现简单五子棋游戏
Jun 28 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
使用adodb lite解决问题
2006/12/31 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
详解Vue源码中一些util函数
2019/04/24 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
python list格式数据excel导出方法
2018/10/31 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
上海微创软件面试题
2012/06/14 面试题
初中同学聚会感言
2014/02/11 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
应届生自荐信
2014/06/30 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
如何用python反转图片,视频
2021/04/24 Python
dubbo服务整合zipkin详解
2021/07/26 Java/Android
浅谈MySQL之select优化方案
2021/08/07 MySQL