如何用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 相关文章推荐
jQuery使用手册之二 DOM操作
Mar 24 Javascript
Javascript入门学习资料收集整理篇
Jul 06 Javascript
jquery 双色表格实现代码
Dec 08 Javascript
JavaScript中的值类型转换介绍
Dec 31 Javascript
Javascript毫秒数用法实例
Feb 05 Javascript
jQuery 监控键盘一段时间没输入
Apr 22 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
May 12 Javascript
Vue自定义事件(详解)
Aug 19 Javascript
React Native自定义控件底部抽屉菜单的示例
Feb 08 Javascript
react-native android状态栏的实现
Jun 15 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
JS判断数组四种实现方法详解
Jun 29 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和ACCESS写聊天室(一)
2006/10/09 PHP
php while循环得到循环次数
2013/10/26 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
封装的原生javascript弹出层代码
2010/09/24 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
python 读写中文json的实例详解
2017/10/29 Python
浅谈flask源码之请求过程
2018/07/26 Python
python多线程下信号处理程序示例
2019/05/31 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
如何利用Python识别图片中的文字
2020/05/31 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
材料会计岗位职责
2014/03/06 职场文书
学术会议主持词
2014/03/17 职场文书
通知范文怎么写
2015/04/16 职场文书
同意报考证明
2015/06/17 职场文书
团组织关系介绍信
2019/06/24 职场文书
go xorm框架的使用
2021/05/22 Golang