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 相关文章推荐
对于Form表单reset方法的新认识
Mar 05 Javascript
js防止页面被iframe调用的方法
Oct 30 Javascript
javascript中var的重要性分析
Feb 11 Javascript
jquery中val()方法是从最后一个选项往前读取的
Sep 06 Javascript
js中获取jsp表单中radio类型的值简单实例
Aug 15 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
Nov 21 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
javascript 中事件冒泡和事件捕获机制的详解
Sep 01 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
php 数组的一个悲剧?
2011/05/11 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python3中的json模块使用详解
2018/05/05 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
python文件排序的方法总结
2020/09/13 Python
制作部班长职位说明书
2014/02/26 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
一份文言文检讨书
2014/09/13 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
2014年科协工作总结
2014/12/09 职场文书
环卫个人总结
2015/03/03 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
一篇文章弄懂Python中的内建函数
2021/08/07 Python