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 相关文章推荐
基于jquery循环map功能的代码
Feb 26 Javascript
解决JS浮点数运算出现Bug的方法
Mar 12 Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 Javascript
node.js中的fs.createWriteStream方法使用说明
Dec 17 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
Aug 05 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
JavaScript严格模式详解
Jan 16 Javascript
js中实例与对象的区别讲解
Jan 21 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 Javascript
手把手教你从零开始react+antd搭建项目
Jun 03 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
浅析PHP水印技术
2007/02/14 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
javascript简易画板开发
2020/04/12 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
python requests指定出口ip的例子
2019/07/25 Python
python+pygame实现坦克大战
2019/09/10 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
导购员的岗位职责
2014/02/08 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
医学检验专业自荐信
2014/09/18 职场文书
辩论会主持词
2015/07/03 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis