Javascript正则时间格式检测
Javascript regext time format detection
我正在尝试编写一些 JS 代码来验证以 24 小时格式输入到输入字段中的时间。我希望能够检测到 HH:MM、HHMM 和 HMM 并拒绝其他任何东西。我还想检测 24 小时内的时间是否可行 - 例如拒绝 26:70 之类的,这是我目前无法做到的:
function validateTime(rawtime) {
var timeregex = new RegExp('([01]?[0-9]|2[0-3]):[0-5][0-9]');
var timeregex4 = new RegExp('([01]?[0-9]|2[0-3])[0-5][0-9]');
var timeregex3 = new RegExp('[0-9][0-5][0-9]');
var numeric = new RegExp('^[0-9]+$');
if (numeric.test(rawtime))
{
if ((rawtime.length == 4) && (timeregex4.test(rawtime))){
document.getElementById("fdbk").innerHTML ="time with 4 digits";
}
else if ((rawtime.length == 3) && (timeregex3.test(rawtime))){
document.getElementById("fdbk").innerHTML ="time with 3 digits";
}
}
else if (timeregex.test(rawtime)) {
document.getElementById("fdbk").innerHTML ="time with :";
}
}
不太清楚是什么问题,很简单^_^
var timeregex = /^([01]?[0-9]|2[0-3]):?([0-5][0-9])$/;
现在匹配...
var match = rawtime.match(timeregex);
然后你得到...
var hours = parseInt(match[1],10),
minutes = parseInt(match[2],10);
完成了吗?
这是一个简单的函数(不使用 RegEx),可以验证您请求的时间格式。
function valTime(time) {
var len = time.length,
hour,
mins;
if(len == 5) { //HH:MM
var spl = time.split(':');
if(!$.isArray(spl)) { return false; } //Not an array
hour = spl[0];
mins = spl[1];
}
if(len == 4) { //HHMM
hour = time[0] + time[1];
mins = time[2] + time[3];
}
if(len == 3) { //HMM
hour = time[0];
mins = time[1] + time[2];
}
if(+hour <= 23 && +mins <= 59) {
return true;
} else {
return false;
}
}
我正在尝试编写一些 JS 代码来验证以 24 小时格式输入到输入字段中的时间。我希望能够检测到 HH:MM、HHMM 和 HMM 并拒绝其他任何东西。我还想检测 24 小时内的时间是否可行 - 例如拒绝 26:70 之类的,这是我目前无法做到的:
function validateTime(rawtime) {
var timeregex = new RegExp('([01]?[0-9]|2[0-3]):[0-5][0-9]');
var timeregex4 = new RegExp('([01]?[0-9]|2[0-3])[0-5][0-9]');
var timeregex3 = new RegExp('[0-9][0-5][0-9]');
var numeric = new RegExp('^[0-9]+$');
if (numeric.test(rawtime))
{
if ((rawtime.length == 4) && (timeregex4.test(rawtime))){
document.getElementById("fdbk").innerHTML ="time with 4 digits";
}
else if ((rawtime.length == 3) && (timeregex3.test(rawtime))){
document.getElementById("fdbk").innerHTML ="time with 3 digits";
}
}
else if (timeregex.test(rawtime)) {
document.getElementById("fdbk").innerHTML ="time with :";
}
}
不太清楚是什么问题,很简单^_^
var timeregex = /^([01]?[0-9]|2[0-3]):?([0-5][0-9])$/;
现在匹配...
var match = rawtime.match(timeregex);
然后你得到...
var hours = parseInt(match[1],10),
minutes = parseInt(match[2],10);
完成了吗?
这是一个简单的函数(不使用 RegEx),可以验证您请求的时间格式。
function valTime(time) {
var len = time.length,
hour,
mins;
if(len == 5) { //HH:MM
var spl = time.split(':');
if(!$.isArray(spl)) { return false; } //Not an array
hour = spl[0];
mins = spl[1];
}
if(len == 4) { //HHMM
hour = time[0] + time[1];
mins = time[2] + time[3];
}
if(len == 3) { //HMM
hour = time[0];
mins = time[1] + time[2];
}
if(+hour <= 23 && +mins <= 59) {
return true;
} else {
return false;
}
}