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 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
Oct 30 Javascript
超实用的JavaScript代码段 附使用方法
May 22 Javascript
前端框架Vue.js中Directive知识详解
Sep 12 Javascript
vue.js表格分页示例
Oct 18 Javascript
node跨域请求方法小结
Aug 25 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 Javascript
js实现网页随机验证码
Oct 19 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 daodb插入、更新与删除数据
2009/03/19 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
学习php笔记 字符串处理
2010/10/19 PHP
php检测文本的编码
2015/07/26 PHP
自动更新作用
2006/10/08 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
JS功能代码集锦
2016/05/04 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
python实现ID3决策树算法
2018/08/29 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
python for和else语句趣谈
2019/07/02 Python
python迭代器常见用法实例分析
2019/11/22 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
政协调研汇报材料
2014/08/15 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
创业计划书之养殖业
2019/10/11 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS