jQuery中校验时间格式的正则表达式小结
jQuery中校验时间格式的正则表达式小结
发布时间:2016-12-30 来源:查字典编辑
摘要:代码中用到了jQuery,传入的参数是jQuery选择的input对象.原理:先用正则匹配,再提取时分秒,看其是否在正常的范围内。复制代码代...

代码中用到了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})-(0d{1}|1[0-2])$/;

//日期格式yyyy-mm-dd

PatternsDict.date_ymd= /^(d{4})-(0d{1}|1[0-2])-(0d{1}|[12]d{1}|3[01])$/;

//时间格式hh

PatternsDict.time_h=/^(0d{1}|1d{1}|2[0-3])$/;

//时间格式hh:mm

PatternsDict.time_hm=/^(0d{1}|1d{1}|2[0-3]):([0-5]d{1})$/;

//时间格式hh:mm:ss

PatternsDict.time_hms=/^(0d{1}|1d{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]|1d|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]|1d|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教程学习
编程开发子分类