如何用javascript判断录入的日期是否合法

代码如下:

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;
}

(0)

相关推荐

  • js判断日期时间有效性的方法

    分享两种使用javascript验证日期以及时间是否有效的方法 第一种: //| 日期有效性验证 //| 格式为:YYYY-MM-DD或YYYY/MM/DD function IsValidDate(DateStr){ var sDate=DateStr.replace(/(^\s+|\s+$)/g,'');//去两边空格; if(sDate==''){ return true; } //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或

  • 一波JavaScript日期判断脚本分享

    1.比较两个日期先后 var x = new Date('2015-05-25'); var y = new Date('2015-05-25'); if (x.getTime() == y.getTime()) { It'll be true; } 2.是否在两个日期之间   var beforeSpringDate, afterSpringDate; for (var i = 0; i < springFestivalDays.length; i++) { beforeSpringDate

  • 纯javascript判断查询日期是否为有效日期

    以下内容主要通过js代码给大家介绍,代码比较简单,包含注释,有好的建议欢迎提出. 如下图,当查询条件含有日期时,如"2012-3-4",查询前校验输入的日期字符串是否为有效的日期 var snapshot_createTime_begin=$(selector+" input[name='createTime_begin']").val().trim(); var snapshot_createTime_end=$(selector +" input[na

  • javascript 判断两个日期之差的示例代码

    日期差我们需要像php中一样把如2015-08-30这种转换成秒之后再利用两个日期的秒数进行相减之后再加起判断就可以了,如果判断日期相等就简单多了在文章最后有例子说明. 例子1,日期之差函数 function better_time(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var strDateArrayStart; var strDateArrayEnd; var intDay; strDateArraySt

  • JS判断日期格式是否合法的简单实例

    类似于PHP中的Checkdate. //函数名:CheckDateTime //功能介绍:检查是否为日期时间 function CheckDateTime(str){ var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3],

  • js 判断一组日期是否是连续的简单实例

    这是群里一朋友问的问题,当时我说判断下 day 是否相邻即可,后来细想,发现完全不对. 问题需求 给定5个相同格式的日期,怎么判断是否是连续5天呢? 我当时第一反应 getDay() 后排序,然后前后对比即可.. 但是细想,完全不对,比如本周一下周二,这样也会误判. 而且不仅仅这样的问题,还要跨月,跨年,闰月等问题. 然后就有了下面的代码. 让时间戳抹平一切吧 为了不纠结这些问题,我想到了时间戳,这货就可以完全忽略上述问题了,只要处理时间戳,最后比较即可. 然后我给了如下代码: let days

  • 如何用javascript判断录入的日期是否合法

    复制代码 代码如下: 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.

  • 如何用javascript正则表达式验证身份证号码是否合法

    在用户注册页面有些需求要求的比较严格,需要对身份证验证是否合法,通过此功能严格此系统软件,从而过滤到很多水客.下面就此实现方法给大家讲解下. 很多时候我们都是通过一组正则表达式来判断用户输入的身份证是否合法,那在用正则表达式判断之前,你对身份证号的组成有多少了解呢?下面来说说一个身份证号里面包含了多少的信息: 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码(前六

  • JavaScript判断日期时间差的实例代码

    js判断日期时间的代码如下所示: alert(GetDateDiff("2018-02-27 19:20:22","2018-02-27 09:20:22","hour")); function GetDateDiff(startTime, endTime, diffType) { //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 startTime = startTime.replace(/\-/g, "/&q

  • javascript完美实现给定日期返回上月日期的方法

    本文实例讲述了javascript完美实现给定日期返回上月日期的方法.分享给大家供大家参考,具体如下: 在项目开发中,使用javascript对日期进行处理时,因为在查询中都会有一个初始值,大多都会在当前日期的基础上推一个月,在这种情况下,如果自己写一个,需要考虑的情况较多,在这里给大家分享一下一个比较完善的解决这个问题的方法.供大家参考.例如:给定截止日期enddate=2010-07-31 计算得到开始日期startdate=2010-06-30 这个问题的关键在于对以下几处的考虑: 1.s

  • JavaScript实现设置默认日期范围为最近40天的方法分析

    本文实例讲述了JavaScript实现设置默认日期范围为最近40天的方法.分享给大家供大家参考,具体如下: 前面文章<JavaScript输出所选择起始与结束日期的方法>中的例子实现了选择日期,然后把选择的日期输出,这么一个功能. 不过实际项目中,测试人员说客户的需求是点击进入页面后,自动查询最近40天的数据. 想了想,实现的原理就是在页面加载之后,调用一个JavaScript函数设置日期,相比上一篇文章,除了修改了部分格式,还增加了onload函数. 另外,虽然把日期转为字符串可以用标准函数

  • 使用JavaScript判断手机浏览器是横屏还是竖屏问题

    //判断手机横竖屏状态: function hengshuping(){ if(window.orientation==180||window.orientation==0){ alert("竖屏状态!") } if(window.orientation==90||window.orientation==-90){ alert("横屏状态!") } } window.addEventListener("onorientationchange" i

  • JavaScript+HTML5实现的日期比较功能示例

    本文实例讲述了JavaScript+HTML5实现的日期比较功能.分享给大家供大家参考,具体如下: 这里要在前面的文章<JavaScript实现设置默认日期范围为最近40天的方法>基础之上,进一步校验开始日期.结束日期是否合理. 比如:开始日期要小于等于结束日期,还有实现只能查询最近40天内的数据(设定为:结束日期减去开始日期要小于等于41,设为40也可以,关键看需求),如果要查询超过40天的数据,会直接报错. 在报错时,不会显示具体的错误,比如:结束日期大于当天日期,或者开始日期大于当天日期

  • 如何用JavaScript动态呼叫函数(两种方式)

    近来的使用者,越来越强调 UI 介面的互动,渐渐原本对一条小龙来说只是配角的 JavaScript (以下简称 JS) 变成的主角,占了很大一块的用途. 像是最近很热门的 ASP.NET 的 MVC 里面就直接Include JQuery 可见一般. MVC 用了一阵子,一条小龙甚至感觉 MVC 中的 Controller 根本就是 JS 在控制的,这样怎么把 UI 工作独立,切给美工用,感觉也是蛮大的疑问. 看来后面的美工,只会绘图.拉画面是不行的,一定要会 JS.Flash 等等前端控制语言

  • 如何用JavaScript检测当前浏览器是无头浏览器

    什么是无头浏览器(headless browser)? 无头浏览器是指可以在图形界面情况下运行的浏览器.我可以通过编程来控制无头浏览器自动执行各种任务,比如做测试,给网页截屏等. 为什么叫"无头"浏览器? "无头"这个词来源于最初的"无头计算机(Headless computer)".维基百科关于的"无头计算机"词条: 无头系统(headless system)是指已配置为无须显示器(即"头").键盘和鼠标

随机推荐