zoukankan      html  css  js  c++  java
  • [转载]比较完美的日期验证正则表达式(已修正)

    我始终没有找到完美的日期验证正则表达式,这要问题就是对瑞年的判断。

    我们知道,每 400 年会有 97 个闰年(参见高中《地理》课本),完整的瑞年判断是这样的:
    瑞年的年份
    1) 若是整百年,能被 400 整除
    否则
    2) 能被 4 整除

    下面给出代码,主要是为 String 原型添加 isDate 方法:
    下面的正则表达式可以看成是由三个正则表达式拼接而成,瑞年二月判断、非闰年二月判断、其它月份判断。

        <script language="javascript" type="text/javascript">
            
    // 分隔符
            Separator = {
                ANY: 
    ".",
                DASH: 
    "-",
                DOT: 
    "\\.",
                SLASH: 
    "/"
            }
    ;

            String.prototype.isDate 
    = function(sep)
            

                
    var reStr = "^(((([0-9]{2}(([2468][048])|([02468][48])|([13579][26])))|((([02468][048])|([13579][26]))(00)))(-)(2|02)(-)(([0]?[1-9])|([1-2][0-9])))|((([0-9]{2}([02468][1235679])|([13579][01345789]))|((([02468][1235679])|([13579][01345789]))(00)))(-)(2|02)(-)(([0]?[1-9])|([1][0-9])|([2][0-8])))|(([0-9]{4})(-)(((([0]?(1|3|5|7|8))|(10|12))(-)(([0]?[1-9])|([1-2][0-9])|30|31))|(((([0]?(4|6))|11))(-)(([0]?[1-9])|([1-2][0-9])|30)))))$";

                
    if(typeof(sep) == "string")
                    reStr 
    = reStr.replace(/\(-\)/g, "(" + sep + ")");
                
    var re = new RegExp(reStr, "g");
                
    return re.test(this); 
            }
    ;
            
            
    function check()
            
    {
                
    var bb = document.getElementById("TextBox1").value;

                
    //alert(bb.isDate());   
                //alert(bb.isDate(Separator.ANY)) ;
                //alert(bb.isDate(Separator.DASH)) ;
                //alert(bb.isDate(Separator.DOT)) ;
                alert(bb.isDate(Separator.SLASH));
            }

        
    </script>
    本篇文章为转载,来自:GisCell的blogs   http://blog.csdn.net/giscell/archive/2007/06/22/1662209.aspx
  • 相关阅读:
    TP5中的小知识
    php中Redis的扩展
    html js css压缩工具 可以实现代码压缩
    Python 基础
    操作系统简介
    计算机硬件
    Linux命令 比较文件
    Linux命令 查看及修改文件属性
    Linux命令 文件备份归档恢复
    Linux命令 文件的建立移动删除
  • 原文地址:https://www.cnblogs.com/puke/p/850347.html
Copyright © 2011-2022 走看看