`
yuyangsoft
  • 浏览: 36584 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

js正则验证日期(包括闰年)

 
阅读更多
function CheckObjDate(word)
{
    var checkResult = CheckDate(word);
    switch(checkResult)
    {
        case 'ERRORNODATE':
            alert('不能为空!');
            break;
        case 'ERRORDATEFORMAT':
            alert('时间格式不正确!');
            break;
        default:
            alert('通过!');
            return true;
    }

}
function CheckDate(checkDate)
{
     var reg =/^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))))$/;
    var word = checkDate;
    if(word.length == 0)
    {
        return 'ERRORNODATE';
    }
    var splitedWord = word.split("-");
    if(splitedWord.length > 3 || splitedWord.length < 2)
    {
        return 'ERRORDATEFORMAT';
    }
    else
    {
        for(var i = 0; i < splitedWord.length; i++)
            if(splitedWord[i].length == 0)
                return 'ERRORDATEFORMAT';
    }
    if(splitedWord.length == 2)
    {
        if(splitedWord[0].length < 1 || splitedWord[0].length > 2)
            return 'ERRORDATEFORMAT';
        else if(splitedWord[0].length == 1)
        {
           splitedWord[0] = "0" +  splitedWord[0];
        }
        if(splitedWord[1].length < 1 || splitedWord[1].length > 2)
            return 'ERRORDATEFORMAT';
        else if(splitedWord[1].length == 1)
        {
           splitedWord[1] = "0" +  splitedWord[1];
        }
        var now = new Date();
        word = now.getFullYear() + "/" + splitedWord[0] + "/" + splitedWord[1];
    }
    if(splitedWord.length == 3)
    {
        if(splitedWord[0].length < 1 || splitedWord[0].length > 4)
            return 'ERRORDATEFORMAT';
        else if(splitedWord[0].length == 1)
        {
           splitedWord[0] = "200" +  splitedWord[0];
        }
        else if(splitedWord[0].length == 2)
        {
           splitedWord[0] = "20" +  splitedWord[0];
        }
        if(splitedWord[1].length < 1 || splitedWord[1].length > 2)
            return 'ERRORDATEFORMAT';
        else if(splitedWord[1].length == 1)
        {
           splitedWord[1] = "0" +  splitedWord[1];
        }
        if(splitedWord[2].length < 1 || splitedWord[2].length > 2)
           return 'ERRORDATEFORMAT';
        else if(splitedWord[2].length == 1)
        {
           splitedWord[2] = "0" +  splitedWord[2];
        }
        word = splitedWord[0] + "/" + splitedWord[1] + "/" + splitedWord[2];
    }
    if(!(word.match(reg)))
    {
        return 'ERRORDATEFORMAT';
    }
    else
    {
        return word;
    }
}
分享到:
评论

相关推荐

    验证日期的正则表达式及其注释(包含闰年验证)

    验证日期的正则表达式及其注释(包含闰年验证) yyyy-mm-dd 常用日期格式

    C# 最全的日期正则表达式,没有之一

    而实际应用中,日期的范围基本上不会超出DateTime所规定的范围,所以正则验证取其中常用的日期范围即可。 2.2 什么是闰年 (以下摘自百度百科) 闰年(leap year)是为了弥补因人为历法规定造成的年度天数与地球实际...

    js对日期操作

    Date.prototype.isLeapYear 判断闰年 Date.prototype.Format 日期格式化 Date.prototype.DateAdd 日期计算 ...IsValidDate 验证日期有效性 CheckDateTime 完整日期时间检查 daysBetween 日期天数差

    15/18位身份证号码验证的正则表达式总结(详细版)

    开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单、效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧。 介绍 xxxxxx yyyy MM dd 375 0 十八位 xxxxxx yy MM...

    比较全的js验证,包括(身份证,手机,固话,身份证号与性别、出生日期验证等等)

    自己写的比较全js验证,供大家参考 //身份证验证 function checkIdcard(idcard1,showMsg){ var idcard=this.trim(idcard1);// 对身份证号码做处理。去除头尾空格。 var Errors=new Array( "验证通过!", ...

    程序天下:JavaScript实例自学手册

    16.7 不使用正则验证IP地址 16.8 IP地址输入框 16.9 判断变量是否已经定义 16.10 判断方法是否已经定义 16.11 表单验证样式(一) 16.12 判断表单是否已修改 16.13 判断控件的类型 16.14 密码强度检查 16.15 身份证...

    《程序天下:JavaScript实例自学手册》光盘源码

    16.7 不使用正则验证IP地址 16.8 IP地址输入框 16.9 判断变量是否已经定义 16.10 判断方法是否已经定义 16.11 表单验证样式(一) 16.12 判断表单是否已修改 16.13 判断控件的类型 16.14 密码强度检查 16.15 身份证...

    JavaScript网页特效范例宝典源码

    实例084 通过正则表达式验证日期 130 实例085 验证输入的日期格式是否正确 132 实例086 检查表单元素是否为空 134 实例087 验证E-mail是否正确 135 实例088 通过正则表达式验证电话号码 137 实例089 验证输入的字符...

    身份证验证HTML源码

    判断身份证的方法比使用正则表达式更加准确详细请看 js中的 checkidcard.js 判断省份证的 js function checkIsChinese(str){ if (str.length || str.length &gt; 15){ return "姓名长度不正确"; } var ret=true...

    JavaScript实用范例词典04-14

    日期格式... 259 9.15 验证文字字段中输入的是否是 时间格式... 261 9.16 验证文字字段中输入的是否为邮箱 地址... 262 9.17 自动切换为英文输入模式... 264 9.18 使用键盘选择文字字段... 265 9.19 使文字...

    PHP开发实战1200例源码

    实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052 使用位运算对数字进行加密和解密 83 2.3 包含语句 84 实例053 提高代码重用率 84 实例054 包含数据库连接文件 85 实例055 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例050 打印2000~2020年的所有闰年 81 实例051 前置运算符和后置运算符的区别 82 实例052 使用位运算对数字进行加密和解密 83 2.3 包含语句 84 实例053 提高代码重用率 84 实例054 包含数据库连接文件 85 实例055 ...

Global site tag (gtag.js) - Google Analytics