如何用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数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
Mar 21 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
用svg制作富有动态的tooltip
Jul 17 Javascript
ANGULARJS中使用JQUERY分页控件
Sep 16 Javascript
js密码强度实时检测代码
Mar 02 Javascript
教你如何用node连接redis的示例代码
Jul 12 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
如何修改Vue打包后文件的接口地址配置的方法
Apr 22 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 Javascript
jQuery实现简单评论区功能
Oct 26 jQuery
[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读取30天之内的根据算法排序的代码
2008/04/06 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
php算法实例分享
2015/07/14 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
python绘图库Matplotlib的安装
2014/07/03 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Python 存取npy格式数据实例
2020/07/01 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
产品促销活动策划书
2014/01/15 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
锦旗赠语
2015/06/23 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS