首頁  >  文章  >  web前端  >  jQuery中校驗時間格式的正規表示式小結_jquery

jQuery中校驗時間格式的正規表示式小結_jquery

WBOY
WBOY原創
2016-05-16 17:22:011439瀏覽

程式碼中用到了jQuery,傳入的參數是jQuery選擇的input物件.原理:先用正規匹配,再提取時分秒,看其是否在正常的範圍內。

複製程式碼 程式碼如下:

/**
 * 偵測時間是否符合格式
 * @param {Object} timeTextBox
 */


/***/
*/    var time = timeTextBox.val();
    var regTime = /^([0-2][0-9]):([0-5][0-9]) :([0-5][0-9])$/;
    var result = false;
    if (regTime.test(time)) {
    24) && (parseInt(RegExp.$2)              if (result) {
        $("#errmsg").html("");
    }else {
              });
        timeTextBox.focus( );
        $("#errmsg").html("時間格式錯誤");
    }
 return result;
}

 return result;
}

例2

直接使用js 正規表示式來實例

程式碼如下:


PUBL "//W3C/ DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 
  New Document title><br>  <meta name="Generator" content="EditPlus"> <br>  <meta name="Author" content=""> <br>  <meta name="Keywords" content=""> <br>  <meta name="Description" content=""> <br> <br> 
出生日期:
 
 <script><BR>var DATE_FORMAT = /^[0-9]{4}-[0-1]?[ 0-9]{1}-[0-3]?[0-9]{1}$/;<BR>function checkDate(){<BR> var birthday = document.getElementById("birthday").value; <BR> if(DATE_FORMAT.test(birthday)){<BR>   alert("您輸入的日期格式正確");<BR>  } else {<BR>   alert("抱歉,您輸入的日期格式有誤,正確格式應為"2012-01-01".");<BR>  }<BR>  }<BR> </script>


jquery驗證時間

驗證時間的正規表示式集合

//日期格式yyyy 
PatternsDict.date_y= /^(d{4})$/; 

//日期格式yyyy-mm 
PatternsDict.date_ym= /^(d{4})-(0d{1}|1[0-2])$/; 

//日期格式yyyy-mm-dd 
PatternsDict.date_ymd= /^(d{4})-(0d{1}|1[0-2])-(0d{1}|[12 ]d{1}|3[01])$/; 

//時間格式hh 
PatternsDict.time_h=/^(0d{1}|1d{1}|2[0-3])$/; 

//時間格式hh:mm 
PatternsDict.time_hm=/^(0d{1}|1d{1}|2[0-3]):([0-5]d{1})$ /; 

//時間格式hh:mm:ss 
PatternsDict.time_hms=/^(0d{1}|1d{1}|2[0-3]):[0-5]d{1}: ([0-5]d{1})$/;

 格式為時間,就是說前兩位都不能少,而且不能大於23,後面的時和分不能大於59,必須寫在16:02:01而不能為16:2:1

[0-2][0-3]:[0-5][0-9]:[0-5][0-9]

用CompareValidator  
     operator設為DateTypeCheck  
     type設為Date

這裡是判斷YYYY-MM-DD這種格式的,基本上把閏年和2月等的情況都考慮進去了,不過我已經忘了在哪裡找到的。

^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]| [12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0 ?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9 ]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26]) |((16|[2468][048]|[3579][26])00))-0?2-29-))$

下面的是加了時間驗證的

^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]| [12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0 ?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9 ]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26]) |((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?d):[ 0-5]?d:[0-5]?d$


【aspx頁內:
   顯示為: 2004-8-11 19:44:28 我只想 要:2004-8-11 】

  

 ?

  
   【格式化日期】
   取出,一般是object
   ((DateTime)objectFromDB).ToString("yyyy-MM-dd");
   A.以下正確的輸入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

pm   ^((d   ^((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?[1-9])|(1[0-2])):([0-5][0-9])(( s)|(:([0-5][0-9])s))([AM|PM|am|pm]{2,2})))?$

   B.以下正確的輸入格式:[0001-12-31], [9999 09 30], [2002/03/03]

   ^d{4}[-/s]?((((0[13578] )|(1[02]))[-/s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11) )[-/s]?(([0-2][0-9])|(30)))|(02[-/s]?[0-2][0-9]))$

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn