我有一个日期时间文本框,其中包含日期和时间。 我想验证时间。对于我已验证的日期。 例如日期时间值为 04/23/2013 05:26 pm;
我需要一个正则表达式来验证格式为 00:00:00 的时间。 全部都是数字,不会输入特殊字符或数字以外的字符。 我只想验证 dd:dd:dd 都是 2 位数字。 我可以输入例如 10:10:10 和 01:02。
我尝试过像这样的js方式。我对正则表达式一无所知。所以我需要建议。
function ValidateDate()
{
//getting the value from textbox
var dateVal=document.getElementById('txtDateTime').value;
//after one space there is time..as i am using a datepicker and timepicker format
var time=dateVal.split(' ')[1];
var isValidTime=CheckTime(time);
}
function CheckTime(time)
{
var timePart=time.split(":");
var hour = timePart[0];
var minute = timePart[1];
var second = timePart[2];
if((parseInt(hour,10)<0) || (parseInt(hour,10)>59))
{
return false;
}
if((parseInt(minute)>59) || (parseInt(minute)<0))
{
return false;
}
if((parseInt(second)<0) || (parseInt(second)>59))
{
return false;
}
return true;
}
感谢您的建议。
最佳答案
一个简单的正则表达式 /^([0-1][0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9]))?$/g
会起作用的。
10:00:00 - OK
01:00:00 - OK
60:00:00 - Fail
30 - Fail
30:00 - Fail
23:59 - OK
24:00 - Fail
23:60:60 - Fail
23:59:59 - OK
正则表达式尸检:
-
^
- 这是句子必须开始的地方 -
([0-1][0-9]|2[0-3])
-
[0-1][0-9]
- 数字0
至1
后跟0
之间的任意数字和9
-
|
- 或 -
2[0-3]
- 数字2
后跟0
之间的任意数字和3
-
-
:
- 文字:字符 -
([0-5][0-9])
-0
中的数字至5
后跟0
之间的任意数字和9
-
(?::([0-5][0-9]))?
-
?:
- 非捕获组 -
:
- 文字:字符 -
([0-5][0-9])
-0
中的数字至5
后跟0
之间的任意数字和9
-
?
- 表示前一个语句应该出现 0 或 1 次(因此它不必出现)。
-
-
$
- 这是句子必须结束的地方
关于javascript - 需要正则表达式来验证时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16168849/