如何用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 学习笔记(十六) js事件
Feb 01 Javascript
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
浅析JavaScript原型继承的陷阱
Dec 03 Javascript
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
jquery 实现input输入什么div图层显示什么
Jun 15 Javascript
javascript伸缩型菜单实现代码
Nov 16 Javascript
jQuery选择器总结之常用元素查找方法
Aug 04 Javascript
微信小程序 教程之数据绑定
Oct 18 Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
Jul 22 Javascript
支付宝小程序实现省市区三级联动
Jun 21 Javascript
解决Vue大括号字符换行踩的坑
Nov 09 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
php Ubb代码编辑器函数代码
2012/07/05 PHP
基于php split()函数的用法详解
2013/06/05 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
php pdo操作数据库示例
2017/03/10 PHP
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
合同协议书格式
2014/04/18 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
保证书格式
2015/01/16 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
魂断蓝桥观后感
2015/06/10 职场文书