如何用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利用与或运算符优先级实现if else条件判断表达式
Apr 15 Javascript
Jquery AJAX 用于计算点击率(统计)
Jun 30 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
vue初尝试--项目结构(推荐)
Jan 30 Javascript
浅谈在Vue.js中如何实现时间转换指令
Jan 06 Javascript
详解几十行代码实现一个vue的状态管理
Jan 28 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 Javascript
p5.js临摹旋转爱心
Oct 23 Javascript
浅谈layui 绑定form submit提交表单的注意事项
Oct 25 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
[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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
discuz7 phpMysql操作类
2009/06/21 PHP
php与paypal整合方法
2010/11/28 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
php中数组最简单的使用方法
2020/12/27 PHP
php自动加载代码实例详解
2021/02/26 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
摘自启点的main.js
2008/04/20 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
python中实现k-means聚类算法详解
2017/11/11 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
python实现简易云音乐播放器
2018/01/04 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
关键字final的用法
2013/10/02 面试题
料理师求职信
2014/01/30 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书