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


Posted in Javascript onSeptember 22, 2013

代码中用到了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" "http://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$

【aspx页面内:<%# 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]))$

Javascript 相关文章推荐
javascript小数计算出现近似值的解决办法
Feb 06 Javascript
javascript实现日历控件(年月日关闭按钮)
Dec 12 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
js中substring和substr的定义和用法
May 05 Javascript
jquery插件unobtrusive实现片段式加载
Jun 15 Javascript
使用javaScript动态加载Js文件和Css文件
Oct 24 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
完美的js图片轮换效果
Feb 05 Javascript
微信小程序实现登录注册tab切换效果
Dec 29 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
jquery中获取id值方法小结
Sep 22 #Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 #Javascript
浏览器页面区域大小的js获取方法
Sep 21 #Javascript
javascript dom追加内容实现示例
Sep 21 #Javascript
html+js实现动态显示本地时间
Sep 21 #Javascript
JavaScript加强之自定义event事件
Sep 21 #Javascript
JavaScript加强之自定义callback示例
Sep 21 #Javascript
You might like
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php命名空间学习详解
2014/02/27 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
Python中asyncore的用法实例
2014/09/29 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
简单谈谈Python中的闭包
2016/11/30 Python
答题辅助python代码实现
2018/01/16 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
基于Python实现扑克牌面试题
2019/12/11 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Python实现扫码工具的示例代码
2020/10/09 Python
如何进行Linux分区优化
2013/02/12 面试题
客服服务心得体会
2013/12/30 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
庐山导游词
2015/02/03 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis