日期时间校验Javascript脚本

参考了别人的经验,自己整理过的关于日期时间校验Javascript脚本:
   //去掉两段空格
None.gifString.prototype.Trim 
=   function ()
None.gif{
None.gif    
return   this .replace( / ( ^ \s * ) | (\s * $) / g, "" );
None.gif}
None.gif
// ********************** 方法一 **********************
None.gif//
***************************************************
None.gif//
 名称: CheckDateTime 
None.gif//
 功能; 判断输入的Text是否是合法的日期时间格式;如2004-02-04 20:33/2004-02-04 20:33:22  验证的格式有:yyyy-MM-dd(yyyy-M-d)格式,yyyyMMdd格式 以及 yyyy/MM/dd格式 + HH:mm:ss / H:m:s /HH:mm
None.gif//
 说明: 可以只有日期部分而没有时间部分
None.gif//
 参数: 1:控件的对象   
None.gif//
 返回值:
None.gif//
        如果控件对象的值为空串,定义校验通过,           返回true
None.gif//
        如果字串符合,校验通过                            返回true
None.gif//
        如果字串不符合,                                 返回false    
None.gif//
 作者: lsj
None.gif//
 添加时间: 2005-07-11
None.gif//
 用法:
None.gif//
      var DateControl = document.getElementById('txtDate') ;
None.gif//
         if(CheckDateTime(DateControl) == false)  {  return false ;  }    
None.gif//
****************************************************
None.gif
function  CheckDateTime(dateControlName)
None.gif{
None.gif     
var  strDTCheck  =  eval(dateControlName).value.Trim() ;
None.gif     
var  strDateString  =  eval(dateControlName).value.Trim();
None.gif     
var  strDate;
None.gif     
var  strTime;
None.gif     
var  strSp  =   0 ;
None.gif     
None.gif     
if  (strDateString.length  ==   0 // 注意      
None.gif
     {   return   true ;  }
None.gif          
None.gif     
// 取得分隔符" " 的位置 日期部分和时间部分的分隔符             
None.gif
      for  ( var  i = 0 ;i < strDateString.length;i ++ )
None.gif     {
None.gif        
if  (strDateString.substr(i, 1 ==   "   " )
None.gif        {
None.gif            strSp
= i;
None.gif            
break ;
None.gif        }
None.gif     }
None.gif     
// 如果没有分隔符" ";日期时间格式错误
None.gif
      if  (strSp  ==   0 )
None.gif     {  
// 如果没有日期时间分隔符" ",
None.gif
          if (strDTCheck.length  <=   10  ) 
None.gif         {  
// 如果字符串长度小于等于10,说明输入的有可能只是日期部分,而没有时间部分
None.gif
            strDate  =  strDTCheck ;
None.gif            
return  CheckDate(strDate) ;
None.gif         }                 
None.gif         
return   false ;
None.gif      }
None.gif    strDate 
=  strDateString.substr( 0 ,strSp);  // 取日期部分
None.gif
    strTime  =  strDateString.substr(strSp + 1 ,strDateString.length - strSp + 1 );  // 取时间部分
None.gif
    
None.gif    
var  separator  =  ':'; // 时间分隔符
None.gif
     var  arrayOfTimes  =  strTime.split(separator);  //  HH:mm:ss 两个分隔符    
None.gif
     if (arrayOfTimes.length  ==   2  ) 
None.gif    { 
// 如果没有秒钟,补上 使之成为 HH:mm:ss 格式
None.gif
        strTime  =  strTime    + " :00 "
None.gif    }
None.gif    
if  (CheckDate(strDate)  ==   true ) // 调用子函数CheckDate
None.gif
    {    // 校验日期部分正确 
None.gif
          //  if (CheckTime(strTime) == true)
None.gif
           if  (isTime(strTime)  ==   true // 调用子函数isTime
None.gif
              {   return   true ;}
None.gif          
else
None.gif              {  
return   false ;}
None.gif    }
None.gif    
else
None.gif    {
// 校验日期部分不正确 ,返回false
None.gif
           return   false ;
None.gif    }                  
None.gif}
None.gif  
//  添加时间: 2005-07-11
None.gif
   // 短时间,形如 (13:04:06)
None.gif
   function  isTime(str)
None.gif      {
None.gif        
var  a  =  str.match( /^ (\d{ 1 , 2 })(:) ? (\d{ 1 , 2 })\ 2 (\d{ 1 , 2 })$ / );
None.gif        
if  (a  ==   null ) {alert('输入的时间格式不正确');  return   false ;}
None.gif        
if  (a[ 1 ] > 24   ||  a[ 3 ] > 60   ||  a[ 4 ] > 60 )
None.gif        {
None.gif          alert(
" 时间格式不对 " );
None.gif          
return   false
None.gif        }
None.gif        
return   true ;
None.gif      }
None.gif
// ***************************************************
None.gif//
 名称: CheckDate 
None.gif//
 功能; 判断得到的日期格式是否合法(注:不包括时间部分),
None.gif//
       验证的格式有:yyyy-MM-dd(yyyy-M-d)格式,yyyyMMdd格式 以及 yyyy/MM/dd格式 
None.gif//
 调用: 调用子函数CheckyyyyMMdd(dayString) 
None.gif//
 参数: String SparaDate (1999-01-01)  or  (1999/01/01)         
None.gif//
 返回值:
None.gif//
        如果字串日期格式合法,定义校验通过          返回true
None.gif//
        如果字串日期格式不合法,                     返回false
None.gif//
 作者:  
None.gif//
 时间: 2005-06-23
None.gif//
****************************************************
None.gif
function  CheckDate(SparaDate)
None.gif { 
None.gif    
// 如果是正确的yyyyMMdd格式则校验通过,增加时间2005-06-23 added by linsj
None.gif
     if  (CheckyyyyMMdd(SparaDate)  ==   true )
None.gif    {    
return   true ;   }
None.gif    
None.gif     
var  strYMDSP  =   0
None.gif     
var  strYMD;
None.gif    
None.gif     
// 判断YYYYMMDD中的分隔符号 不是- 或/报错     
None.gif
       if  ( ! (SparaDate.substr( 4 , 1 ) == " - " ))
None.gif      { 
None.gif          
if ( ! (SparaDate.substr( 4 , 1 ) == " / " ))
None.gif           {    
return   false ;   }
None.gif       }            
None.gif         
None.gif     
var  strYear  =  SparaDate.substr( 0 , 4 );
None.gif     SparaDate   
=  SparaDate.substr( 5 ,SparaDate.length - 5 );
None.gif          
None.gif    
// 去掉年后的字符串   
None.gif
     for  (i = 0 ;i < SparaDate.length;i ++ )
None.gif    {
None.gif        
if  (SparaDate.substr(i, 1 ) == " - "
None.gif        {
None.gif           strYMDSP 
=  i;
None.gif           
break ;
None.gif        }
None.gif       
if  (SparaDate.substr(i, 1 ) == " / "
None.gif       {
None.gif          strYMDSP 
=  i;
None.gif          
break ;
None.gif       }
None.gif    }         
None.gif   
// 剩下的字符串中没有-或/报错   
None.gif
     if   (strYMDSP < 1 )
None.gif    {
None.gif       
return   false ;
None.gif    }
None.gif        
None.gif   
var  strMonth  =  SparaDate.substr( 0 ,strYMDSP);
None.gif   
var  strDay =  SparaDate.substr(strYMDSP + 1 ,SparaDate.length - strYMDSP + 1 );   
None.gif   
// 如果月和日是一位的话补0 ,使之成为yyyyMMdd格式
None.gif
    if  (strMonth.length  ==   1 )
None.gif   {   strMonth 
=   " 0 " + strMonth;        }   // 补0             
None.gif
    if  (strDay.length  ==   1 )
None.gif   {      strDay 
=   " 0 " + strDay;         }   // 补0 
None.gif
     // 调用CheckyyyyMMdd函数判断yyyyMMdd格式的日期
None.gif
     if  (CheckyyyyMMdd(strYear + strMonth + strDay)  ==   true )
None.gif    {    
return   true ;   }
None.gif    
else
None.gif    {   
return   false ;   }   
None.gif
None.gif }  
//  end  function CheckDate
None.gif//
***************************************************
None.gif//
 名称: CheckyyyyMMdd 
None.gif//
 功能; 判断得到的日期字符串的日期格式是否合法,仅yyyyMMdd格式;   
None.gif//
 参数: String dayString 如:(19980508 yyyyMMdd格式)
None.gif//
 时间: 2005-06-23
None.gif//
 作者: lsj
None.gif//
****************************************************
None.gif
function  CheckyyyyMMdd(dayString)
None.gif{
None.gif    
// 年月日检验函数
None.gif
     var  digit  =   " 0123456789 " ;
None.gif    datelist 
=   new  Array( 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 );
None.gif    
if  (dayString.length  != 8 return ( false );
None.gif    
for (i = 0 ;i < 8 ;i ++ )
None.gif    {
None.gif        
if (digit.indexOf(dayString.charAt(i), 0 ) ==- 1 return ( false );
None.gif    }
None.gif    year  
=  dayString.substr( 0 , 4 );  // 截取年部分
None.gif
    month  =  dayString.substr( 4 , 2 );  // 截取月部分
None.gif
    date   =  dayString.substr( 6 , 2 );  // 截取日部分
None.gif
     if  (year > 2200 || year < 1900 || month > 12 || month < 1 || date > 31 || date < 1 )   return ( false );
None.gif    
if (date > datelist[month - 1 ])  return ( false );
None.gif
None.gif    yyyy 
=  eval(year);
None.gif    
if  ( month  ==   " 02 "  )
None.gif    {
None.gif        
if  ( (yyyy  %   400 ==   0  )
None.gif        {
None.gif            
if  ( date > 29  )   return ( false );
None.gif        }
None.gif        
else   if  ( (yyyy  %   4 ==   0   &&  (yyyy  %   100 !=   0  )
None.gif        {
None.gif            
if  ( date > 29  )   return ( false );
None.gif        }
None.gif        
else
None.gif        {
None.gif            
if  ( date > 28  )   return ( false );
None.gif        }
None.gif    }
None.gif    
return ( true );
None.gif
//  end function CheckyyyyMMdd
None.gif

None.gif
None.gif
// ********************** 方法二 **********************
None.gif
       
None.gif      
// 校验 完全使用时间正则表达式
        //用法:isDateTimeString(document.getElementById('TextBox1').value) ;
None.gif
        function  isDateTimeString(str)
None.gif      {
None.gif        str 
=  str.Trim();
None.gif        
if (str.length  ==   0  )  return   true  ;
None.gif        
None.gif        
var  a  =  str.match( /^ ((\d{ 2 }(([ 02468 ][ 048 ]) | ([ 13579 ][ 26 ]))[\ - \ / \s] ? (((( 0 ? [ 13578 ]) | ( 1 [ 02 ]))[\ - \ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]) | ( 3 [ 01 ]))) | ((( 0 ? [ 469 ]) | ( 11 ))[\ - \ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]) | ( 30 ))) | ( 0 ? 2 [\ - \ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]))))) | (\d{ 2 }(([ 02468 ][ 1235679 ]) | ([ 13579 ][ 01345789 ]))[\ - \ / \s] ? (((( 0 ? [ 13578 ]) | ( 1 [ 02 ]))[\ - \ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]) | ( 3 [ 01 ]))) | ((( 0 ? [ 469 ]) | ( 11 ))[\ - \ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]) | ( 30 ))) | ( 0 ? 2 [\ - \ / \s] ? (( 0 ? [ 1 - 9 ]) | ( 1 [ 0 - 9 ]) | ( 2 [ 0 - 8 ]))))))(\s((([ 0 - 9 ] | [ 0 - 1 ][ 0 - 9 ] | [ 2 ][ 0 - 3 ]))\:([ 0 - 9 ] | [ 0 - 5 ][ 0 - 9 ])(() | (\:([ 0 - 9 ] | [ 0 - 5 ][ 0 - 9 ]))))) ? $ / );
None.gif        
if  (a  ==   null ) {  return   false ;}
None.gif        
if  (a[ 1 ] > 24   ||  a[ 3 ] > 60   ||  a[ 4 ] > 60 )
None.gif        {
None.gif          
// alert("时间格式不对");
None.gif
           return   false
None.gif        }
None.gif        
return   true ;
None.gif      }
None.gif     
None.gif     
None.gif     
// 另外可以参考的函数
None.gif
      // ***************************************************
None.gif//
 名称: CheckTime 
None.gif//
 功能; 判断得到的时间格式是否合法;   
None.gif//
 参数: String (21:21:21)
None.gif//
 调用 的方法:function CheckHHmmss(time)          
None.gif//
 作者:  
None.gif//
****************************************************
None.gif/*
 
None.giffunction CheckTime(SparaTime)
None.gif{
None.gif
None.gif    var CurrentTimeString;
None.gif    var strTimeString;
None.gif    var strLength = 0;
None.gif    strTimeString = "";
None.gif    CurrentTimeString = SparaTime.Trim(); //去掉两边空格
None.gif   if (CurrentTimeString.length == 0)
None.gif   { //长度为0,即没有输入时间
None.gif      strTimeString = "000000"; 
None.gif   }
None.gif   else
None.gif   {    
None.gif      strLength = CurrentTimeString.length;
None.gif      //如果长度不满8位,报错              
None.gif      if (strLength == 8) 
None.gif      {            
None.gif        //去掉时间间隔符:":"               
None.gif         for(var j=0 ;j< CurrentTimeString.length;j++)
None.gif         {
None.gif            if (CurrentTimeString.substr(j,1) != ":")
None.gif            {
None.gif                strTimeString = strTimeString+CurrentTimeString.substr(j,1);
None.gif            }
None.gif         }
None.gif       }
None.gif       else
None.gif       { 
None.gif            return false; 
None.gif       }                
None.gif    }
None.gif   return CheckHHmmss (strTimeString);          
None.gif}
None.gif//***************************************************
None.gif// 名称: CheckHHmmss 
None.gif// 功能; 判断得到的时间格式是否合法;   
None.gif// 参数: String 如:(222222)
None.gif// 时间: 2005-07-11
None.gif// 作者: 
None.gif//****************************************************
None.gif 
None.giffunction CheckHHmmss (time)
None.gif{
None.gif//时间校验函数
None.gif    var digit="0123456789";
None.gif    if (time.length !=6) return(false);
None.gif    for(i=0;i<6;i++)
None.gif    {
None.gif        if(digit.indexOf(time.charAt(i),0)==-1) return(false);
None.gif    }
None.gif    hh=time.substr(0,2);
None.gif    mm=time.substr(2,2);
None.gif    ss=time.substr(4,2);
None.gif    if (hh>24||hh<0||mm>60||mm<0||ss>60||ss<0)  return(false);
None.gif    return(true);
None.gif}
None.gif 
*/
None.gif



转载于:https://www.cnblogs.com/jinglelin/archive/2005/07/11/190696.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
js大全 . 1.1 全是数字.. 3 1.2 限制 期限 不能大于 100 年.. 4 1.3 将日期格式由yyyy-MM-dd,转换为yyyymmdd,以直接比较两个日 期的大小.. 4 1.4 判断字符串是否全部由数字组成. 5 1.5 判断字符串是否全部由字母组成. 6 1.6 对于月和日,如果前面有零,去除,如 01 变为 1 .. 6 1.7 为 1 位的日月在前面补零,如将 1 变为 01 .. 7 1.8 在删除按钮的onclick事件触发.. 8 1.9 对输入控件的内容进行非空检验,如果为空,弹出提示信息.. 10 1.10 检验控件值是否是固定位数的有效数字 11 1.11 所输内容应为字母 12 1.12 过滤掉"'"、"%"、"&"、"/"、"" 13 1.13 删除字符串两侧的空格. 14 1.14 取字符串长度(不包含两端的空格) 14 1.15 清空查询条件.. 16 1.16 价格输入是否合法(99,999.00) 17 1.17 检验货票号为 1 位字母+6 位数字.. 17 1.18 检验起始货票号必须小于截至货票号. 18 1.19 检验查询条件是否为空,为空则提示"查询条件不能为空!" 19 1.20 检验是不是最短位数的数字,用于模糊查询. 20 1.21 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 20 1.22 电话号码校验(只能为横线—、()、或数字) . 21 1.23 检测输入是否为正整数数字,如果结果为非给出相应提示. 22 1.24 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语23 1.25 检查EMail格式 23 1.26 电话号码由数字和-组成 24 1.26 检验输入的日期yyyy-MM-dd 27 1.27 去掉界面上开头的空格,过滤掉"'" 和""" . 33 1.29 去掉汉字间空格. 35 1.30 大小写转换 36 1.31 过滤掉"'"和""" . 36 1.32 清空查询条件.. 37 1.33 过滤掉"'"和"""和空格. 37 1.34 操作员代码为 7 位数字,密码最少为 4 位 .. 38 1.35 身份证为 15 或 18 位数字或字母 38 1.36 检验输入的时间段,日期格式yyyy-MM-dd 39 1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、或数字) 49 1.41 所输内容应为字母 50 1.41 所输内容不能非空 50 1.42 价格输入是否合法(99,999.00) 51 1.43 价格输入是否合法(99,999.00) 52 1.44 判断文本内容是否少于 2 个汉字/字符(js中汉字和字符占位一 样).. 53 1.45 检测输入是否只有字母或数字. 53 1.46 检测输入是否只有数字或不详,且输入数值不能过大(不能超过 32767).. 54 1.47 检测输入是否为数字.. 55 1.48 监测输入是否为数字,且所输入数值不能过大(不能超过 5 位 32767).. 56 1.49 检测输入是否为整形数字,且所输数值不能过大(不能超过 10 位 2147483647). 57 1.52 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 /************************************ .. 59 1.53 可以为负数的数字,数值不能超过 5 位 32767 . 60 1.54 险情报告编号为四位年份加三位数字. 61 1.55 检验度数控制值是否是数字,并且小于或等于 180; /************************************ .. 62 1.56 删除字符串两侧的空格,返回的是删除两侧空格的字符串. 63 1.57 打开模式窗口,窗口居中 65 1.59 检验输入的时间段,日期格式yyyy-MM-dd 67 1.60 检验输入的日期yyyy-MM-dd 69 1.61 用下拉框显示月、日,日下拉框根据年月确定 73 1.62 检验租赁合同号为 4 位年份+2 位月份+本月合同的顺序号 2 位 75 1.63 用于多行校验校验每一行,每一列值是否为空,传入的必须是 . 76 1.64 检查某列得多值中是否存在重复值.. 79 1.65 检查某列得多值与某一值得比较是否相同,例如多个到站路局与 一个发站路局是否相同 80 1.66 检查两多值列是否相同,例如同一行的装车路局是否与卸车站所 属路局是否相同 80 1.67 检查箱数与组数. 81 1.68 检查箱数与组数. 82 1.69 检查箱数与组数. 84 1.70 检查单列多值不能超过一定得长度.. 85 1.71 取字符串长度(不包含两端的空格 . 86 1.72 向表格中添加一行 86 1.73 将添加的输入框元素和Validator进行绑定。.. 89 1.74 根据标签展示的 的validator属性获取校验器类名(DecimalValidator) 91 1.75 删除一行. 92 1.76 根据箱型,校验箱数与组数的值是否符合规定 93 1.77 删除字符串两侧的空格. 95 1.78 检验单个集装箱箱号为 4 位字母+7 位数字. 95 1.79 检验多个集装箱箱号为 4 位字母+7 位数字. 97 1.80 检验单个集装箱箱号为'TBJU'+7 位数字用于租赁部分的箱号校验 .. 101 1.86 判断字符串是否全部由字母组成. 105 1.88 为 1 位的日月在前面补零,如将 1 变为 01 .. 107 1.90 检查EMail格式. 107 1.91 对输入控件的内容进行非空检验,如果为空,弹出提示信息. 109 1.92 检验控件值是否是固定位数的有效数字. 110 1.93 所输内容应为字母. 111 1.94 过滤掉"'"、"%"、"&"、"/"、"" . 112 1.95 取字符串长度(不包含两端的空格) . 113 1.96 将金额转化成按千分位的显示格式 114 1.97 清空查询条件 115 1.98 价格输入是否合法(99,999.00). 115 1.99 检验货票号为 1 位字母+6 位数字 116 2.00 检验起始货票号必须小于截至货票号.. 117 2.01 检验查询条件是否为空,为空则提示"查询条件不能为空!" . 118 2.02 检验是不是最短位数的数字,用于模糊查询.. 118 2.03 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 .. 119 2.04 电话号码校验(只能为横线?、()、或数字) . 120 2.05(1)电话号码由数字和-组成 120 (2)电话号码为 7 到 13 位 . 120 (3)13 开头的头的手机号码必须为 11 位 120 2.06 检测输入是否为正整数数字,如果结果为非给出相应提示.. 121 2.07 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语句 前执行该方法.. 121 2.08 检查EMail格式. 122 2.09 电话号码由数字和-组成. 123 2.10 检验IP地址 . 124 2.11 校验忽略样式内容后文本域中的内容是否为空//校验忽略样式内容 后文本域中的内容是否为空.. 124 2.12 计算天数差的函数. 125 2.13 把结束日期月份加上月末日期.. 125 2.14 检验输入的日期yyyy-MM 126

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值