如何用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 相关文章推荐
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
jquery eval解析JSON中的注意点介绍
Aug 23 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
在linux中使用包管理器安装node.js
Mar 13 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
将页面table内容与样式另存成excel文件的方法
Aug 05 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
Vuex提升学习篇
Jan 11 Javascript
Vue按时间段查询数据组件使用详解
Aug 21 Javascript
JS前端可扩展的低代码UI框架Sunmao使用详解
Jul 23 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实时显示输出
2008/10/02 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
Python装饰器基础详解
2016/03/09 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
pyspark 随机森林的实现
2020/04/24 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
python设置表格边框的具体方法
2020/07/17 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
大学自我鉴定
2013/12/20 职场文书
项目施工员岗位职责
2014/03/09 职场文书
售后客服工作职责
2014/06/16 职场文书
教师考核表个人总结
2015/02/12 职场文书
加班费申请报告
2015/05/15 职场文书
简爱电影观后感
2015/06/10 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android