在Javascript或jquery中,有没有办法验证给定的字符串是h:m还是hh:mm格式还是h格式。 例如:
5 //legal
2.5 //legal
.5 //legal
2:05 //legal
:5 //NOT legal
2:61 // NOT legal
这个想法是,如果字符串可以解析为double,或者它可以用h:m格式解析,那么就可以了。
这不是24小时的时间,33:44完全有效,这是为了进入工作时间。
由于
答案 0 :(得分:0)
function test(str) {
if (!isNaN(str)) return true;
$parts = str.split(':');
return !isNaN(str[0]) && !isNaN(str[1]) && (+str[1]) <= 60;
}
答案 1 :(得分:0)
如果您想要持续时间(以便h
可以是任何值),请使用正则表达式测试数字和时间,如:
/^(?:\.\d+|\d+(?:\.\d*)?|\d+:[0-5]?\d)$/.test(str)
为法律案件返回true
,而false
则返回
答案 2 :(得分:0)
我认为问题可以用这样的代码解决:
function validate(value) {
if (!parseFloat(value)) {
var values = value.split(':');
if (!parseInt(values[0]) || parseInt(values[1]) >= 60) {
return false;
}
}
else {
var values = value.split('.');
if (parseInt(values[1]) >= 60)
return false;
}
return true;
}
答案 3 :(得分:0)
尝试
/^(\d+|\d*(\.[0-5]?\d)|\d+(:[0-5]?\d)?)$/
E.g。
function verify( time ) {
return /^(\d+|\d*(\.[0-5]?\d)|\d+(:[0-5]?\d)?)$/.test( time );
}
verify( '24:00' ); // true