当前位置: 移动技术网 > IT编程>开发语言>JavaScript > jQuery中校验时间格式的正则表达式小结

jQuery中校验时间格式的正则表达式小结

2018年09月17日  | 移动技术网IT编程  | 我要评论

代码中用到了jquery,传入的参数是jquery选择的input对象.原理:先用正则匹配,再提取时分秒,看其是否在正常的范围内。

 

. 代码如下:


/**
 * 检测时间是否符合格式
 * @param {object} timetextbox
 */
function checktime(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)) {
        if ((parseint(regexp.$1) < 24) && (parseint(regexp.$2) < 60) && (parseint(regexp.$3) < 60)) {
            result = true;
        }
    }
    if (result) {
        $("#errmsg").html("");
    }else {
        timetextbox.attr({
            value: ""
        });
        timetextbox.focus();
        $("#errmsg").html("时间格式错误");
    }
 return result;
}

 

例2

直接使用js+正则表达式来实例

 

. 代码如下:


<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "https://www.w3.org/tr/html4/loose.dtd">
<html>
 <head>
  <title> new document </title>
  <meta name="generator" content="editplus">
  <meta name="author" content="">
  <meta name="keywords" content="">
  <meta name="description" content="">
 </head>
 <body>
出生日期: <input id="birthday" name="birthday" type="text" value="" onblur="checkdate();"/>
 </body>
 <script>
var date_format = /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/;
function checkdate(){
 var birthday = document.getelementbyid("birthday").value;
 if(date_format.test(birthday)){
   alert("您输入的日期格式正确");
  } else {
   alert("抱歉,您输入的日期格式有误,正确格式应为"2012-01-01".");
  }
  }
 </script>
</html>



jquery验证时间

 

验证时间的正则表达式集合

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

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

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

//时间格式hh 
patternsdict.time_h=/^(0\d{1}|1\d{1}|2[0-3])$/; 

//时间格式hh:mm 
patternsdict.time_hm=/^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$/; 

//时间格式hh:mm:ss 
patternsdict.time_hms=/^(0\d{1}|1\d{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]|1\d|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]|1\d|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$


【x页面内:<%# databinder.eval(container.dataitem,"company_ureg_date")%>
   显示为: 2004-8-11 19:44:28
   我只想要:2004-8-11 】

   <%# databinder.eval(container.dataitem,"company_ureg_date","{0:yyyy-m-d}")%>

   应该如何改?

  
   【格式化日期】
   取出来,一般是object
   ((datetime)objectfromdb).tostring("yyyy-mm-dd");

  
   a.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

   ^((\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]))$

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网