在 Javascript 或 jquery 中,有没有办法验证给定的字符串是 h:m 或 hh:mm 格式还是简单的 h 格式。前任:
5 //legal
2.5 //legal
.5 //legal
2:05 //legal
:5 //NOT legal
2:61 // NOT legal
这个想法是,如果字符串可以解析为双精度,或者可以解析为 h:m 格式,那么就可以了。
这不是 24 小时制,33:44 完全有效,这是用于输入工作时间的。
谢谢
在 Javascript 或 jquery 中,有没有办法验证给定的字符串是 h:m 或 hh:mm 格式还是简单的 h 格式。前任:
5 //legal
2.5 //legal
.5 //legal
2:05 //legal
:5 //NOT legal
2:61 // NOT legal
这个想法是,如果字符串可以解析为双精度,或者可以解析为 h:m 格式,那么就可以了。
这不是 24 小时制,33:44 完全有效,这是用于输入工作时间的。
谢谢
function test(str) {
if (!isNaN(str)) return true;
$parts = str.split(':');
return !isNaN(str[0]) && !isNaN(str[1]) && (+str[1]) <= 60;
}
如果您想要一个持续时间(h
可以是任何值),请使用正则表达式测试数字和时间,例如:
/^(?:\.\d+|\d+(?:\.\d*)?|\d+:[0-5]?\d)$/.test(str)
true
法律案件和false
其他方面的回报
我认为这个问题可以用这样的代码解决:
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;
}
尝试
/^(\d+|\d*(\.[0-5]?\d)|\d+(:[0-5]?\d)?)$/
例如
function verify( time ) {
return /^(\d+|\d*(\.[0-5]?\d)|\d+(:[0-5]?\d)?)$/.test( time );
}
verify( '24:00' ); // true