2

在 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 完全有效,这是用于输入工作时间的。

谢谢

4

4 回答 4

0
function test(str) {
  if (!isNaN(str)) return true;
  $parts = str.split(':');
  return !isNaN(str[0]) && !isNaN(str[1]) && (+str[1]) <= 60;
}
于 2013-03-28T20:08:20.287 回答
0

如果您想要一个持续时间(h可以是任何值),请使用正则表达式测试数字和时间,例如:

/^(?:\.\d+|\d+(?:\.\d*)?|\d+:[0-5]?\d)$/.test(str)

true法律案件和false其他方面的回报

于 2013-03-28T20:09:28.133 回答
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;
}
于 2013-03-28T20:12:02.917 回答
0

尝试

/^(\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
于 2013-03-28T20:21:32.857 回答