我有一个日期时间文本框,其中包含日期和时间.我想验证时间.对于我验证的日期.例如,datetime值是04/23/2013 05:26 pm;
我需要一个正则表达式,可以验证格式为00:00:00的时间.所有都是数字,不会输入任何特殊字符或数字.我只想验证dd:dd:dd都是2位数.我可以输入例如10:10:10和01:02.
我试过像这样的js方式.我对regex没有任何了解.所以我想要建议.
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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议.
一个简单的正则表达式/^([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
Run Code Online (Sandbox Code Playgroud)
正则表达式尸检:
^ - 这是句子必须开始的地方([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次(因此它不具有在那里).$ - 这是句子必须结束的地方| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |